Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将SWIG与C++;_C++_Python_Swig - Fatal编程技术网

C++ 将SWIG与C++;

C++ 将SWIG与C++;,c++,python,swig,C++,Python,Swig,大家好 我尝试使用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++ swig-c++-pyt

大家好

我尝试使用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++ swig-c++-python swig_TEST.i g++-c-fPIC SWIG_TEST.cpp SWIG_TEST_wrap.cxx-I/usr/include/python2.4/ gcc—共享SWIG_TEST.o SWIG_TEST_wrap.o-o_SWIG_TEST.so-lstdc++ 完成后,我收到以下错误消息

ImportError: ./_SWIG_TEST.so: undefined symbol: Py_InitModule4 ImportError:./\u SWIG\u TEST.so:未定义符号:Py\u InitModule4
您知道它是什么吗?

您可以尝试使用
gcc

g++ -shared SWIG_TEST.o SWIG_TEST_wrap.o -o _SWIG_TEST.so

而不是直接使用
ld

看起来您没有链接到Python运行库。类似于将
-lpython24
添加到gcc行。(我现在手头没有Linux系统)。

正如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配置
并不完美;它有时会给你额外的东西,或者冲突的东西。但这肯定会有很大帮助