FreeWrap工具,將tcl/tk指令碼轉變為可執行檔案

jearmy發表於2012-02-16
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,可以在中找到,目前的最新版本為6.4,支援tcl/tk8.5.0

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/459749/viewspace-1057377/,如需轉載,請註明出處,否則將追究法律責任。

相關文章