2010-12-18 123 views
0

我想使用一個自定義的TCL解釋器作爲TclDevKit的tclapp的前綴文件。如何構建一個自定義的TclDevKit前綴文件?

我有一個TCL解釋從以下文件內置:

// file main.cpp 
#include <tcl.h> 

int 
Tcl_AppInit(Tcl_Interp* interp)      
{ 
    if (Tcl_Init(interp) == TCL_ERROR) {   
     return TCL_ERROR;        
    }    
    if (Tcl_Eval(interp, "puts \"this is my interpreter\"") == TCL_ERROR) { 
     return TCL_ERROR;       
    } 
    return TCL_OK; 
} 

int 
main(int argc, char** argv)       
{ 
    Tcl_Main(argc, argv, &Tcl_AppInit); 
    return 0; 
} 

我建立main.cpp用下面的命令:

g++ -Wl,-R/usr/local/lib -L/usr/local/lib -ltcl main.cpp -o myinterp 

,並得到一個解釋myinterp

我應該如何修改main.cpp及以上g++命令能夠通過myinterp-prefix選項TclDevKit的tclapp的?

回答

0

這並不容易。前綴文件不是傳統的可執行文件,而是完整的Tcl解釋器,包括,包括一個虛擬文件系統,包含通常位於外部文件中的所有額外的位和片段(例如,某些機器上的編碼,腳本,時區信息,和二進制)。這些都是使用sdx工具打包成一個名爲「tclkit」的實體,它也需要包括一些自定義的東西(比如保存的字節碼文件加載程序包)。總之,這是一個相當複雜的構建。

爲什麼你需要這個?你真的需要C++嗎?你能否重寫你的代碼,使它位於Tcl的load命令可以使用的共享庫中?

+0

你有沒有考慮聯繫ActiveState尋求支持? – 2010-12-18 17:38:58