2017-08-08 39 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 –

相關問題