我想将我的 tcl 程序包装成单个可执行文件,并且我到达了 tclkit 和 starkit。
我从这里下载了tclkit: http://kitcreator.rkeene.org/kitcreator 我使用以下选项构建了它:Linux/amd64,软件包:Metakit、Tcllib、Tk; Tcl8.6.12。 然后我运行它并且它起作用了。 在下一步中,我以套件形式下载了 sdx 工具: https://chiselapp.com/user/aspect/repository/sdx/index
然后我用编译好的 tclkit 打开它并得到:
can't find package vfs::mkcl
while executing
"package require vfs::mkcl"
(procedure "::vfs::mk4::Mount" line 4)
invoked from within
"::vfs::mk4::Mount /home/georgtree/tclkit/sdx-20110317.kit /home/georgtree/tclkit/sdx-20110317.kit -readonly"
("eval" body line 1)
invoked from within
"eval [list ::vfs::${driver}::Mount $self $self] $args"
为了解决这个问题,我安装了 vfs1.4.2 和 vqtcl4.1。最后一个包提供了这个库(屏幕截图) 我将此路径添加到环境变量中,并且...它不起作用。 所以我的问题是 - 我做错了什么以及如何正确安装它。 我的系统是Kubuntu 22.04。 提前谢谢你,乔治。
您没有提及如何调用 sdx.kit。我使用您的链接创建了一个具有与您指定的相同选项的 tclkit。然后我从您提供的其他链接下载了 sdx.kit。我还创建了一个名为 hello.tcl 的小 tcl 脚本。然后我执行了以下步骤:
mv sdx-20110317.kit sdx.kit
cp tclkit tclkit-rt
./tclkit sdx.kit qwrap hello.tcl -runtime tclkit-rt
./hello.kit
程序按预期运行。
您不能让相同的 tclkit 运行 sdx.kit 并作为运行时包含在内。但复印一份就可以了。
我确实在 SUSE Leap 15.6 上运行了这个。但我不认为这是一个因素,因为 tclkit 基本上可以在您的系统上运行。