2017-03-08 83 views
0

我對TCL相對比較陌生,我試圖在Windows 10上使用SWIG執行C++程序。使用命令提示符。我沒有使用Visual Studio 我基本上嘗試使用C++的MinGW從TCLTCL - 對`_imp__Tcl_ResetResult'的未定義引用g ++

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 

是否有人可以幫助我在此運行r_cpp? 我應該更改我的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

相關問題