#g #ubuntu-16.04 #boost-python #bjam
#g #ubuntu-16.04 #boost-python #bjam
Вопрос:
Я только что установил boost.python, следуя инструкциям на https://www.boost.org/doc/libs/1_69_0/libs/python/doc/html/building/no_install_quickstart.html но когда я пытаюсь запустить код
bjam toolset=gcc --verbose-test test
он выдает:
...found 23 targets...
...updating 6 targets...
gcc.link.dll extending.so
/usr/bin/ld: cannot find -lboost_python
collect2: error: ld returned 1 exit status
"g " -o "extending.so" -Wl,-h -Wl,extending.so -shared -Wl,--start-group "extending.o" -Wl,-Bstatic -Wl,-Bdynamic -lboost_python -ldl -lpthread -lutil -Wl,--end-group -fPIC -g
...failed gcc.link.dll extending.so...
...skipped <p.>test_ext for lack of <p.>extending.so...
gcc.link test_embed
/usr/bin/ld: cannot find -lboost_python
collect2: error: ld returned 1 exit status
"g " -L"/usr/lib" -L"/usr/lib/python2.7/config" -Wl,-rpath -Wl,"/usr/lib" -Wl,-rpath -Wl,"/usr/lib/python2.7/config" -o "test_embed" -Wl,--start-group "embedding.o" -Wl,-Bstatic -Wl,-Bdynamic -lboost_python -ldl -lpthread -lutil -lpython2.7 -Wl,--end-group -fPIC -g
...failed gcc.link test_embed...
...skipped <p.>test_embed.run for lack of <p.>test_embed...
...failed updating 2 targets...
...skipped 4 targets...
Кто-нибудь знает, как это решить? Я хочу, чтобы boost использовал только boost.python.
Спасибо
Ответ №1:
Это ошибка компоновщика. Вероятно, файл библиотеки находится под другим именем, поэтому придется создать символическую ссылку вручную.
Выполните поиск и найдите «libboost_pythonXX.so «файл в каталоге usr / lib
XX будет соответствовать версии python, с которой вы настроили boost при сборке, судя по выданному исключению, вы, вероятно, настроили его с помощью python2.7, поэтому файл, вероятно, будет называться как libboost_python27.so
а затем создайте символическую ссылку :
sudo ln -s «libboost_pythonXX.so » libboost_python.so
Вы можете использовать эту ссылку для справки.
https://github.com/BVLC/caffe/issues/4843
Это помогло мне устранить ошибку за меня.