Для создания 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