您的位置:首页 > 其它

FreeWrap工具,将tcl/tk脚本转变为可执行文件

2016-02-03 16:29 281 查看
本文转自 http://blog.itpub.net/459749/viewspace-1057377/
FreeWrap可以把TCL/TK的脚本和二进制文件打包成应用程序,FreeWrap将所有的文件组合成一个单独的可执行文件。

[@more@] FreeWrap的原理是把脚本和tcl/tk解释器和库文件都打包在一个文件当中,做成一个可执行程序。生成的可执行文件实际上是一个压缩包,里面包含有需要使用的所有内容。不同的版本对应不同的tcl/tk版本,由于原始的tcl/tk版本只包括一些基本的库,所以如果需要使用更多的库,需要额外添加到文件中,还需要注意添加的方法和调用的顺序,如果是二进制的库就更麻烦了,需要额外的添加一段脚本。

FreeWrap的可执行程序本身就是一个shell,如果修改了可执行程序的名字,在windows下把freeWrap修改为shell,再运行则是一个tcl/tk的shell。

FreeWrap使用非常方便,就是一条命令,语法参考如下。

语法:freewrap dir/test.tcl [-debug] [-f FileLoadList] [-forcewrap] [-i ICOfile] [-o OutFile][-p] [-w WrapStub] File1 ... FileN

参数:

dir/test.tcl TCL/TK脚本主文件目录

File1 ... FileN 需要打包在可执行程序里面的文件,用空格间隔

-debug 在打包的时候打开一个可以查看调试信息的窗口

-f 需要打包的在命令后面的文件名详单

-forcewrap 当freeWrap应用程序名被修改后,强制freeWrap程序以打包程序来运行

-i 指定生成的可执行应用程序的图标

-o 指定生成的可执行应用程序的名称

-p 创建一个freeWrap格式的程序包而不是创建一个可执行程序

-w 生成跨平台的可执行文件

参数详解:

dir/test.tcl

TCL/TK脚本主文件目录,命令紧接着的默认为主脚本,其它的文件都为额外添加的文件。

File1 ... FileN

可以是任意的文件,但是要注意在生成的可执行程序包中的访问方式。比如你在命令中添加的file路径为C:myfilelib.tcl,那么在在打包程序中的目录结构是如下:

myfilelib.tcl

test.tcl

所以在添加库文件时要十分小心,要保证在脚本中调用的文件为source myfilelib.tcl而不是source lib.tcl。

-f

可以罗列需要打包的文件路径名到一个txt文件当中,运行命令后自动添加,避免命令过长。比如有3个文件C:lib1.tcl、C:lib2.tcl和D:lib3.tcl,那么就可以在一个txt文件中写入上面的全路径,注意一个文件路径名占用一行。在调用的时候就可以正常添加所需的文件了。

-forcewrap

简单点说就是默认的应用程序为freewrap,如果由于需要程序名称修改成了shell,那么就可以使用 freewrap dir/test.tcl -forcewrap来打包一个程序,如果没有-forcewrap则是调用一个shell。

-i

使用-i选项去指定生成的可执行程序使用的图标。比如freewrap test.tcl -i test.ico,ico文件需要满足一下三种条件之一:1、16*16 16位色 2、32*32 16位色 3、32*32 2位色,如果是其他ico文件格式,在生成可执行文件时还是会采用默认的图标。

-o

指定生成的可执行应用程序的名称,比如freewrap test.tcl -o my.exe,生成的可执行程序就是my.exe而不是test.exe。

-w

生成跨平台的可执行文件,生成的时候需要有目标平台的freewarp,举例如下:

在windows下生成可以在linux下运行的打包应用程序:freewrap test.tcl -w freewrap

在linux下生成可以在windows下运行的打包应用程序:freewrap test.tcl -w freewrap.exe

如果需要freewrap,可以在http://sourceforge.net/中找到,目前的最新版本为6.4,支持tcl/tk8.5.0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: