[英]using SWIG with C++
大家好
我正在尝试使用SWIG将C ++代码导出到Python。 我在网站上阅读的C示例确实可以工作,但是我对C ++代码有疑问。
这是我打的电话
swig -c++ -python SWIG_TEST.i g++ -c -fPIC SWIG_TEST.cpp SWIG_TEST_wrap.cxx -I/usr/include/python2.4/ gcc --shared SWIG_TEST.o SWIG_TEST_wrap.o -o _SWIG_TEST.so -lstdc++
完成后,我会收到以下错误消息
ImportError: ./_SWIG_TEST.so: undefined symbol: Py_InitModule4
你知道这是什么吗?
看来您没有链接到Python运行时库。 类似于在您的gcc行中添加-lpython24
。 (目前我没有Linux系统)。
您可以尝试使用gcc
构建共享库
g++ -shared SWIG_TEST.o SWIG_TEST_wrap.o -o _SWIG_TEST.so
而不是直接使用ld
。
正如Mark所说,链接到python库是一个问题。 可以通过运行python-config --ldflags
获得有关成功链接所需标志的提示的好方法。 实际上,编译测试的一种特别轻松的方法如下:
swig -c++ -python SWIG_TEST.i
g++ -c `python-config --cflags` -fPIC SWIG_TEST.cpp SWIG_TEST_wrap.cxx
gcc --shared `python-config --ldflags` SWIG_TEST.o SWIG_TEST_wrap.o -o _SWIG_TEST.so -lstdc++
请注意, python-config
并不完美。 它有时会给您额外的东西,或者是冲突的东西。 但这肯定会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.