C ++ / Tk: можем ли мы создать исполняемый файл, который будет запускаться без запрашивающего конечного пользователя для установки какого-либо специального интерпретатора TcL? - PullRequest
1 голос
/ 28 июня 2011

Каковы пошаговые инструкции для компиляции программы C ++ / Tk в исполняемый файл, который будет запускаться на компьютерах других пользователей, не требуя от конечных пользователей установки какого-либо дополнительного программного обеспечения, есть ли какие-либо полностью статические параметры связи для TCL tk?

Ответы [ 2 ]

3 голосов
/ 28 июня 2011

Tcl и Tk прекрасно работают при статической сборке;это поддерживаемая (но не стандартная) конфигурация.Просто получите исходные версии и настройте их на --disable-shared, чтобы убедиться, что они создают правильный тип библиотеки для вас.

Ответ Колина содержит ссылки на большую часть того, что вам нужно знать о кодировании для использования Tcl и Tk извнутри вашего приложения, , за исключением , вам также необходимо вызвать Tcl_FindExecutable, прежде чем вызывать любую из этих других программ (я предполагаю, что вы не вызываете Tcl_Main или Tk_Main, что сделает это длявы оставляете себя обязанным работать как tclsh и wish соответственно).Это необходимый вызов, чтобы убедиться, что библиотека Tcl внутренне сконфигурирована правильно, поскольку она обрабатывает инициализацию системы кодирования и другие низкоуровневые детали, подобные этому.

Если вы можете структурировать вашу программу так, как она работает с tclsh или wishи просто загружая ваш код C ++ в качестве пакета расширения, я призываю вас собрать код с поддержкой заглушек , а затем упаковать его как starkit / starpack .В частности, starpack - это исполняемый файл с одним файлом, который фактически представляет собой автономный двоичный дистрибутив Tcl и Tk плюс код вашего приложения в формате сжатого архива.Распространять приложения таким способом довольно приятно, так как не нужно размещать код там, где пользователи могут случайно его взломать, но он не подходит для всего.(Существуют смежные решения, которые также могут включать шифрование вашего кода, но они предназначены только для коммерческого использования.)

3 голосов
/ 28 июня 2011

Это был первоначальный вариант использования Tcl, хотя сейчас это делается не так часто.Взгляните на эту бесплатную главу из книги Брента Уэлча для хорошего, но устаревшего введения (или купите 4-е издание его книги для более современной версии).Еще один краткий итог - Добавление Tcl / Tk в приложение C на вики Tcl.

...