ImportError:未定义的符号:swig的Py_InitModule4

时间:2012-09-25 18:55:41

标签: python gcc swig x86-64 importerror

我正在尝试通过python使用网络http://www.metarecognition.com/libmr-license/上提供的库。作者提供了C代码和swig接口文件(* .i)。用户提供的Make文件不提供正确的python编译。所以我试着手动编译swig。我在编译主库后使用以下命令。

swig -python weibull.i
gcc -c ../libMR/weibull.c weibull_wrap.c -I/usr/include/python2.4 -fPIC
ld -shared weibull.o weibull_wrap.o -o _weibull.so

这些步骤很好。但是当我尝试通过python导入它时,我遇到了以下错误:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "pyweibullw.py", line 29, in <module>
    _pyweibullw = swig_import_helper()
  File "pyweibullw.py", line 21, in swig_import_helper
    import _pyweibullw
ImportError: /usr/lib/python2.4/dist-packages/_pyweibullw.so: undefined symbol: Py_InitModule4

有人可以告诉我什么错了吗?我是否错过了gcc的一些标志?我已经尝试使用像-m64,-arch x86_64这样的标志的gcc,但它似乎没有任何区别。 仅供参考,我正在使用以下系统

bash-$:uname -a
Linux 2.6.32-5-amd64 #1 SMP Mon Oct 3 03:59:20 UTC 2011 x86_64 GNU/Linux

0 个答案:

没有答案