Простейшие шаги по преобразованию TCL TK в автономное приложение - PullRequest
22 голосов
/ 01 сентября 2009

После столкновения с серьезными проблемами совместимости с C #, ASP.NET, MS Access, Linux и Mono, я решил программировать на кроссплатформенном языке с открытым исходным кодом и совместим со встроенными базами данных, которые также совместим со многими платформами. Я сузил свой выбор до TCL.

Прежде чем я начал пример приложения с TCL, я хотел посмотреть, насколько легко было создать отдельное приложение. Я купил книгу под названием «Практическое программирование в TCL и TK», скачал TCLkit и FreeWrap, но у меня возникли проблемы с поиском методологического способа преобразования TCL в TK (Wish) в отдельное приложение.

Может ли кто-нибудь предоставить простые шаги по преобразованию сценария TCL TK, такого как метка с текстом на нем, в приложение или веб-ресурс с довольно простым объяснением?

Ответы [ 2 ]

24 голосов
/ 01 сентября 2009

Для создания StarPack вам необходимо: a) a tclkit runtime, b) sdx.kit . Вам также нужен "basekit", исполняемый файл, который будет упакован в ваш код tcl. В этом примере я предполагаю, что вы создаете приложение для той же платформы, на которой вы работаете. Вы можете создать базовый комплект, просто скопировав tclkit (или tclkit.exe в Windows) под другим именем, например, «basekit»

% ls
sdx.kit tclkit
% cp tclkit basekit
% ls
basekit sdx.kit tclkit

Теперь создайте код, который вы хотите поместить в исполняемый файл. Соглашение заключается в том, чтобы создать каталог с именем вашего приложения и суффиксом «.vfs» (для «виртуальной файловой системы»), а затем создать файл с именем «main.tcl» в этом каталоге:

% mkdir myapp.vfs
% cat > myapp.vfs/main.tcl
package require Tk
label .l -text "Hello, world"
pack .l
^D
% ls myapp.vfs
main.tcl

Теперь сделаем перенос: для этого вам понадобится файл sdx.kit. Предполагая, что он и tclkit (или tclkit.exe) находятся в вашем текущем рабочем каталоге, вы оборачиваете свое приложение следующим образом:

% ./tclkit sdx.kit wrap myapp -runtime basekit
1 updates applied
% ls 
basekit myapp myapp.vfs sdx.kit tclkit

Команда wrap знает, когда вы передаете ей аргумент «myapp», что она должна обернуть содержимое файла myapp.vfs и что она должна искать в этом каталоге файл с именем «main.tcl», который будет точкой входа в программу. , Вы можете поместить в этот каталог любые другие файлы, которые вы хотите, и все они будут упакованы, включая двоичные файлы для конкретной платформы, файлы изображений и все, что вы хотите связать.

Теперь у вас есть исполняемый файл myapp, который является упакованным приложением.

Если у вас есть tclkits для разных архитектур, вы можете использовать их (заменив 'basekit' в командной строке набором для целевой архитектуры) для кросс-компиляции для других платформ.

Для получения дополнительной информации см. Как создать мой первый Starpack в Tcl'ers Wiki

2 голосов
/ 01 сентября 2009

система сборки Kitgen может также помочь вам в начале.

...