2009-09-01 41 views
22

在遇到與C#,ASP.NET,MS Access,Linux和Mono的主要兼容性問題後,我決定使用跨平臺的語言,開放源代碼,並且兼容與許多平臺兼容的嵌入式數據庫。我把我的選擇縮小到了TCL。將TCL TK轉換爲獨立應用程序的最簡單步驟

在我開始使用TCL的示例應用程序之前,我想看看創建獨立應用程序是多麼容易。我購買了一本名爲「TCL和TK中的實用編程」的書,下載了TCLkit和FreeWrap,但我遇到了麻煩,找到一種將TK(Wish)中的TCL轉換爲獨立應用程序的方法。

任何人都可以提供簡單的步驟,將TCL TK腳本(如帶有文本的標籤)轉換爲應用程序或具有相當直接解釋的Web資源?

回答

24

要構建一個starpack,您需要a)一個tclkit運行時,b)sdx.kit。你還需要一個「basekit」,這個可執行文件將用你的tcl代碼包裝起來。對於這個例子,我假設你正在爲你正在運行的同一個平臺創建一個應用程序。您可以創建簡單地複製tclkit一個basekit(或tclkit.exe在Windows上)爲另一個名稱,如「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 

的包裝命令知道什麼時候你給它的參數「的myapp」,它應該將這些內容包裝的myapp.vfs,並且它應該在該目錄中查找名爲「main.tcl」的文件作爲程序入口點。您可以在該目錄中放置任何其他文件,並將它們全部打包,包括特定於平臺的二進制文件,圖像文件以及任何您想要捆綁的文件。

您現在有一個可執行文件'myapp',它是打包的應用程序。

如果您有針對不同體系結構的tclkits,您可以使用它們(用命令行上的'basekit'替換目標體系結構的套件)以交叉編譯其他平臺。

欲瞭解更多信息,請參閱該Tcl'ers Wiki

+0

謝謝布萊恩 - 你的回答看起來不錯。我現在應該可以開始了。 DFM – DFM 2009-09-01 15:24:22

+0

關於sdx.kit和tclkit的問題 - 我似乎無法獲得sdx和tclkit qwrap。花了幾個小時試圖讓sdx和tcl進入qwrap後,我不斷收到錯誤無效的命令名。我甚至按照網絡指示,並將tclkit.exe更改爲tclkitsh.exe。我認爲我遇到了sdx文件的問題。你如何下載sdx文件?我所能做的就是將文本複製到記事本並將擴展名更改爲.kit。 sdx文件不像普通文件那樣下載,而且我嘗試了多個版本(?) 謝謝 DFM – DFM 2009-09-01 21:37:10

+0

以某種方式複製sdx.kit的文本將無法正常工作 - 這是一個二進制文件。也許你正在獲得源代碼?從此鏈接下載:http://www.equi4.com/pub/sk/sdx.kit。 – 2009-09-01 23:45:29

相關問題