要构建一个starpack,您需要 a) tclkit运行时,b) sdx.kit。您还需要一个“basekit”,它将与您的 tcl 代码一起包装的可执行文件。对于这个例子,我假设您正在为您正在运行的同一平台创建一个应用程序。您可以通过简单地将 tclkit(或 Windows 上的 tclkit.exe)复制到另一个名称来创建 basekit,例如“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”,即打包的应用程序。
如果您有用于不同架构的 tclkit,您可以使用它们(将命令行上的“basekit”替换为目标架构的工具包)为其他平台进行交叉编译。
有关更多信息,请参阅Tcl'ers Wiki上的如何创建我的第一个 Starpack