Swig: не могу собрать, так как я использую c ++ boost lib - PullRequest
0 голосов
/ 05 февраля 2020

В настоящее время я работаю над проектом, в котором мы используем swig для упаковки python кода, чтобы использовать его в бэкенде на основе c ++. Использование boost libs вроде файловой системы никогда не было проблемой. Поскольку мы реализовали функции, использующие boost :: log, я больше не могу собирать проект. При выполнении make возникает следующая ошибка:

[ 80%] Linking CXX shared module _virtualpilab.so
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libboost_filesystem.a(operations.o): relocation R_X86_64_PC32 against symbol `_ZN5boost10filesystem16filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESC_NS_6system10error_codeE' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
src/swig/CMakeFiles/_virtualpilab.dir/build.make:113: recipe for target 'src/swig/_virtualpilab.so' failed
make[2]: *** [src/swig/_virtualpilab.so] Error 1
CMakeFiles/Makefile2:261: recipe for target 'src/swig/CMakeFiles/_virtualpilab.dir/all' failed
make[1]: *** [src/swig/CMakeFiles/_virtualpilab.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

Это сообщение об ошибке указывает на использование -fPIC, но использование этого флага ничего не меняет. Эта ошибка также происходит только на наших машинах с Ubuntu. На Arch все отлично работает ...

Может, вы мне поможете и узнаете, в чем причина этой ошибки. Заранее спасибо!

...