0

カスタム 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ます。

TclDevKit のオプションとして渡すことができるようにするには、上記main.cppg++コマンドをどのように変更すればよいですか?myinterp-prefixtclapp

4

1 に答える 1

0

これは簡単ではありません。プレフィックス ファイルは従来の実行可能ファイルではなく、完全にパッケージ化された Tcl インタープリターであり、通常は外部ファイルに含まれるすべての余分なビットとピース (たとえば、エンコーディング、スクリプト、一部のマシンのタイムゾーン情報、テキストとバイナリの両方のその他のリソース) を含む仮想ファイル システムが含まれます)。これはすべて、sdx ツールを使用して「tclkit」と呼ばれるエンティティとしてパッケージ化されており、多数のカスタムのもの (保存されたバイトコード ファイル ローダー パッケージなど) も含める必要があります。要するに、かなり複雑なビルドです。

なぜこれが必要なのですか?本当に C++ が必要ですか? loadTcl のコマンドで利用できる共有ライブラリにコードを書き直してもらえますか?

于 2010-12-18T17:38:37.960 に答える