我正在尝试为这个库做一个 python 绑定(bind):
http://code.google.com/p/hosterslib/ 。
我正在使用 swig,这是代码:
%module pyhosters
%{
#include "hosters/hosters.hpp"
%}
%include "hosters/hosters.hpp"
我跑
我编译
但是当我运行 python 并导入它时,我得到:
>>> import pyhosters
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "./pyhosters.py", line 7, in <module>
import _pyhosters
ImportError: ./_pyhosters.so: undefined symbol: _ZN7hosters11hostersLink7getLinkEi
我该如何解决?
谢谢。
最佳答案
那是以下的乱七八糟的名字:
hosters::hostersLink::getLink(int)
确保您已定义该函数。
好的,我仔细研究了hosters 0.6。头文件声明了两个
getLink
方法:std::string getLink(void);
std::string getLink(int n);
但是源文件只声明了第一个:
std::string hostersLink::getLink(void) {return Link;}
但是 SWIG 正在为这两个函数创建包装器,这把事情搞砸了。我建议做以下两件事之一:
std::string getLink(int n);
方法。 std::string getLink(int n) { ... }
关于c++ - swig : undefined symbol: _ZN7hosters11hostersLink7getLinkEi 出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2511724/