要构建一个starpack,您需要a)一个tclkit运行时,b)sdx.kit。你还需要一个“basekit”,这个可执行文件将用你的tcl代码包装起来。对于这个例子,我假设你正在为你正在运行的同一个平台创建一个应用程序。您可以创建简单地复制tclkit一个basekit(或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
的包装命令知道什么时候你给它的参数“的myapp”,它应该将这些内容包装的myapp.vfs,并且它应该在该目录中查找名为“main.tcl”的文件作为程序入口点。您可以在该目录中放置任何其他文件,并将它们全部打包,包括特定于平台的二进制文件,图像文件以及任何您想要捆绑的文件。
您现在有一个可执行文件'myapp',它是打包的应用程序。
如果您有针对不同体系结构的tclkits,您可以使用它们(用命令行上的'basekit'替换目标体系结构的套件)以交叉编译其他平台。
欲了解更多信息,请参阅该Tcl'ers Wiki
谢谢布莱恩 - 你的回答看起来不错。我现在应该可以开始了。 DFM – DFM 2009-09-01 15:24:22
关于sdx.kit和tclkit的问题 - 我似乎无法获得sdx和tclkit qwrap。花了几个小时试图让sdx和tcl进入qwrap后,我不断收到错误无效的命令名。我甚至按照网络指示,并将tclkit.exe更改为tclkitsh.exe。我认为我遇到了sdx文件的问题。你如何下载sdx文件?我所能做的就是将文本复制到记事本并将扩展名更改为.kit。 sdx文件不像普通文件那样下载,而且我尝试了多个版本(?) 谢谢 DFM – DFM 2009-09-01 21:37:10
以某种方式复制sdx.kit的文本将无法正常工作 - 这是一个二进制文件。也许你正在获得源代码?从此链接下载:http://www.equi4.com/pub/sk/sdx.kit。 – 2009-09-01 23:45:29