将TCL TK转换为独立应用程序的最简单步骤

时间:2009-09-01 14:26:10

标签: tcl tk

在遇到C#,ASP.NET,MS Access,Linux和Mono的主要兼容性问题之后,我决定使用跨平台,开源并与嵌入式数据库兼容的语言进行编程。与许多平台兼容。我把选择范围缩小到了TCL。

在我开始使用TCL的示例应用程序之前,我想看看创建独立应用程序是多么容易。我购买了一本名为“TCL和TK中的实用编程”的书,下载了TCLkit和FreeWrap,但我找不到将TK(Wish)中的TCL转换为独立应用程序的方法论方法。

是否有人能够提供简单的步骤来将TCL TK脚本(例如带有文本的标签)转换为应用程序,或者具有非常直接解释的Web资源?

2 个答案:

答案 0 :(得分:24)

要构建一个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',即包装的应用程序。

如果你有不同架构的tclkits,你可以使用它们(用命令行上的'basekit'替换目标架构的套件)来交叉编译其他平台。

有关详细信息,请参阅How to create my first Starpack

上的Tcl'ers Wiki

答案 1 :(得分:2)

kitgen build system也可能在一开始就帮助您。