Простейшие шаги по преобразованию TCL TK в автономное приложение

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

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

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

2 ответа

Для сборки starpack вам понадобится: а) среда выполнения tclkit, б) 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.

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

Другие вопросы по тегам