2017-08-08 91 views
0

我使用为python3构建的boost-python来公开一个简单的hello-world程序。这个例子可以在这里找到:https://github.com/TNG/boost-python-examples/blob/master/01-HelloWorld/hello.cppboost python library链接问题 - 未定义的符号

我跑到下面的命令来获取共享对象:

g++ -fPIC -c -I/usr/include/python3.4m -I/usr/include/python3.4m -Wno-unused-result -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -L/usr/lib/x86_64-linux-gnu/libboost_python-py34 hello.cpp 

g++ -shared hello.o -o hello.so 

在此之后,我运行python3 -c 'import hello'命令,我得到以下错误: 回溯(最近最后调用):

File "", line 1, in ImportError: hello.so: undefined symbol: _ZTIN5boost6python7objects21py_function_impl_baseE

我部分理解这个问题,可能是因为我的升压Python安装可用于替代Python版本(例如python2.7待建)。当我运行命令:

ls /usr/lib/x86_64-linux-gnu/libboost_python*.so

有三个.so文件:

1. libboost_python-py27.so 
2. libboost_python-py34.so 
3. libboost_python.so 

如何这个问题被规避?

回答

1

使用的pkg-config来检索您的Boost库

+0

'pkg配置libboost --lib'给我'不包“libboost” –

+1

其分布您使用found'输出?你的命令行有一些问题-L/usr/lib/x86_64-linux-gnu/libboost_python-py34是不对的,它应该是/ usr/lib/x86_64-linux-gnu /和-lboost-py34目录下的使用 – sancelot

+0

ubuntu:14.04 –

相关问题