我对TCL比较陌生,我试图在Windows 10上使用SWIG执行C ++程序。使用命令提示符。我没有使用Visual Studio 我基本上是尝试使用来自TCL的C ++ MinGW运行r_cpp
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
有人可以帮我吗? 我应该在文件夹?????
中对Makefile.in进行更改答案 0 :(得分:0)
我已经做了一段时间,但是我认为你没有链接到具有g ++抱怨的功能的静态/共享库。在这种情况下,tcl库类似于libTclXX.dll。我不太熟悉Windows上的命令行,但可以添加像-llibtclXX.dll -L path_to_tcllib这样的东西。如果我没记错的话,tcl确实提供了一个存根库,供你静态链接你的扩展,那么在运行时共享库可以用来解析函数......所以像-llibtclstubs.dll。查看已安装的lib目录中的这些库的实际名称。