Как исправить /usr /bin / ld: не удается найти -lboost_python

#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

Это помогло мне устранить ошибку за меня.