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

将TCL TK转换为独立应用程序的最简单步骤,tcl,tk,Tcl,Tk,在遇到了C#、ASP.NET、MS Access、Linux和Mono的主要兼容性问题之后,我决定使用一种跨平台、开源、与嵌入式数据库兼容的语言进行编程,而嵌入式数据库也与许多平台兼容。我把选择范围缩小到TCL 在使用TCL开始一个示例应用程序之前,我想看看创建一个独立的应用程序有多容易。我买了一本名为《TCL和TK中的实用编程》的书,下载了TlcKit和FreeWrap,但我很难找到一种方法将TCL和TK(Wish)转换为独立应用程序 有人能提供简单的步骤来将TCL TK脚本(例如标签上有文本

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

在使用TCL开始一个示例应用程序之前,我想看看创建一个独立的应用程序有多容易。我买了一本名为《TCL和TK中的实用编程》的书,下载了TlcKit和FreeWrap,但我很难找到一种方法将TCL和TK(Wish)转换为独立应用程序


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

要构建starpack,您需要a)运行时,b)。您还需要一个“basekit”,即将用tcl代码包装的可执行文件。在本例中,我假设您正在为运行的同一平台创建应用程序。只需将tclkit(或windows上的tclkit.exe)复制到另一个名称,如“basekit”,即可创建basekit

现在,创建要打包到可执行文件中的代码。惯例是创建一个带有应用程序名称和后缀“.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”替换为用于目标体系结构的工具包)为其他平台交叉编译


有关更多信息,请参见

上的,这可能在开始时对您有所帮助。

谢谢您,布莱恩-您的答案看起来很棒。我现在应该可以开始了。DFMQuestion about sdx.kit和tclkit-我似乎无法将sdx和tclkit转换为qwrap。在花了几个小时试图将sdx和tcl转换为qwrap之后,我一直得到一个错误:命令名无效。我甚至按照web说明将tclkit.exe更改为tclkitsh.exe。我想我的sdx文件有问题。如何下载sdx文件?我所能做的就是将文本复制到记事本,并将扩展名改为.kit。sdx文件不像普通文件那样下载,我已经尝试了多个版本(?)感谢DFMSomehow复制sdx.kit的文本不会起作用——它是一个二进制文件。也许你得到了源代码?从以下链接下载:。
% ./tclkit sdx.kit wrap myapp -runtime basekit
1 updates applied
% ls 
basekit myapp myapp.vfs sdx.kit tclkit