SWIG ImportError:未定义的符号:_Py_RefTotal

时间:2010-08-13 22:07:42

标签: import swig

我是SWIG的新手。我试图编译SWIG中给出的示例,但是我收到以下错误:

$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import example
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "example.py", line 25, in <module>
    _example = swig_import_helper()
  File "example.py", line 21, in swig_import_helper
    _mod = imp.load_module('_example', fp, pathname, description)
ImportError: ./_example.so: undefined symbol: _Py_RefTotal

2 个答案:

答案 0 :(得分:3)

我有类似的问题,谷歌把我送到这里 - 我以为我会发布我的解决方案。

对我来说,编译器对是否使用c或c ++感到困惑。

由于我打算编写c ++,我遵循了这个例子,但是使用了swing -c ++选项并使用g ++而不是gcc作为编译器。

然而, 我的构建工具(boost.build或bjam)看到“example.c”并正在使用

进行编译

g ++ -x c -O2 -fPIC -c example.c

“-x c”标志指定c代码,由于example.c的文件扩展名,包含bjam。这导致链接以与帮助请求类似的方式变暗。

我将“example.c”的名称更改为“example.cpp”(使用bjam时会删除-x c标志),然后链接就可以了。

我花了一点时间才发现这一点,所以也许我会在某一天节省30分钟。

祝福

汤姆

答案 1 :(得分:0)

您忘记将-lpython2.6添加到链接器语句中。

相关问题