2017-03-08 14 views
0

私はTCLには比較的新しいので、WindowsではSWIGを使ってC++プログラムを実行しようとしています。私は基本的に誰かがこの上で私を助けてくださいすることができ TCL - g ++用の `_imp__Tcl_ResetResult 'への未定義の参照

C:\swigwin-3.0.12\Examples\r\class>swig -c++ -tcl example.i` 
C:\swigwin-3.0.12\Examples\r\class>g++ -c example.cxx 
C:\swigwin-3.0.12\Examples\r\class>g++ -c example_wrap.cxx -I/Tcl/include/tcl8.6 
C:\swigwin-3.0.12\Examples\r\class>g++ -shared example.o example_wrap.o -o example.dll 
example_wrap.o:example_wrap.cxx:(.text+0x981): undefined reference to `_imp__Tcl_ResetResult'`example_wrap.o:example_wrap.cxx:(.text+0x995): undefined reference to `_imp__Tcl_SetObjResult'`example_wrap.o:example_wrap.cxx:(.text+0x9b9): undefined reference to `_imp__Tcl_SetErrorCode' 
example_wrap.o:example_wrap.cxx:(.text+0x9cf): undefined reference to `_imp__Tcl_ResetResult' 
example_wrap.o:example_wrap.cxx:(.text+0x9f3): undefined reference to `_imp__Tcl_SetErrorCode 
example_wrap.o:example_wrap.cxx:(.text+0xa1e): undefined reference to `_imp__Tcl_AppendResult' 
example_wrap.o:example_wrap.cxx:(.text+0xa3c): undefined reference to `_imp__Tcl_NewStringObj' 
collect2.exe: error: ld returned 1 exit status 

TCL

からC++のMinGWを使用してr_cppを実行しようとしていますVisual Studioの を使用していません? 私のMakefile.inを「?????」フォルダに変更する必要がありますか?

+0

おそらく、Tclのインポートライブラリ – immibis

答えて

0

私はCをやってからしばらくしていましたが、g ++が不平を言っている静的/共有ライブラリにはリンクしていないと思います。この場合、tclライブラリはlibTclXX.dllのようなものです。私はあまりWindowsのコマンドラインに慣れていないが、-llibtclXX.dll -L path_to_tcllibのようなものを追加することができる。私が正しくリコールすれば、tclはあなたの拡張機能を静的にリンクするためのスタブライブラリを提供します。実行時に共有ライブラリを使用して関数を解決することができます。-llibtclstubs.dllのようなものです。これらのライブラリの実際の名前については、インストールされているlibディレクトリを参照してください。

+0

にリンクする必要があります。ありがとうございます。-ltcl86.dllを-Lパスに追加することで問題を解決しました – Srin

関連する問題