如何构建自定义TclDevKit前缀文件?

时间:2010-12-18 10:26:21

标签: tcl interpreter tcldevkit

我想使用自定义TCL解释器作为TclDevKit tclapp的前缀文件。

我有一个由以下文件构建的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.cppg++命令才能将myinterp作为TclDevKit -prefix的{​​{1}}选项传递?

1 个答案:

答案 0 :(得分:0)

这并不容易。前缀文件不是传统的可执行文件,而是完整打包的Tcl解释器包括虚拟文件系统,其中包含通常在外部文件中的所有额外位和部分(例如,编码,脚本,某些机器上的时区信息) ,其他资源包括文本和二进制)。这些都是使用sdx工具打包成一个名为“tclkit”的实体,它还需要包含一堆自定义内容(例如saved-bytecode-file loader包)。简而言之,这是一个相当复杂的构建。

你为什么需要这个?你真的需要C ++吗?您是否可以重写代码,使其位于Tcl的load命令可用的共享库中?