Простейшие шаги по преобразованию 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.