2

私の C++ プログラムでは、Tcl ライブラリを使用して libtcl8.5.so をリンクしましたが、ターゲット ホストには tcl8.5 がないため、libtcl8.5.so と init.tcl を含む tcl8.5 ディレクトリをコピーしました。環境変数 TCLLIBPATH を path/to/copied/tcl8.5 に設定しましたが、私のプログラムが Tcl_Init を呼び出すと失敗し、「パッケージが不明です」と表示されました。

コピーした tcl8.5/ を正しく初期化できないようです。どうすればこの問題を解決できますか?

4

1 に答える 1

2

スクリプト ライブラリ ディレクトリの場所を変更する場合 (このtcl8.5/場合)、Tcl の共有ライブラリ部分にその場所を伝える必要があります。TCL_LIBRARY環境変数を使用してこれを行います。設定されている場合、そのディレクトリの場所である絶対パスが含まれている必要があります (技術的には、 を含むディレクトリinit.tcl)。Tcl の通常のインストールでは、そのディレクトリの正しい場所は共有ライブラリに直接焼き付けられますが、物事を移動すると (または Tcl を実行しているときmake test)、環境変数をオーバーライドできます。

別のパッケージ化メカニズムを調べたいと思うかもしれません。タグですでにいくつかの質問がありました(しかし、プログラムが主に C++ であるという事実を考えると、通常のお気に入りであるスターキットはおそらくあなたのケースには適していません)。

于 2012-10-17T10:45:39.383 に答える