Boost.Python установить и локально собрать ошибку - PullRequest
0 голосов
/ 07 сентября 2018

Поскольку у меня нет прав root, я установил Boost.Python из источника локально с помощью

$ export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/export/home/me/anaconda3/include/python3.6m
$ ./bootstrap.sh  --prefix=/export/home/me/Opt/boostpython --without-icu --with-python=/export/home/me/anaconda3/bin/python3.6 --with-libraries=system,thread,python --with-python-root=/export/home/me/anaconda3 --with-python-version=3.6
$ ./b2 && ./b2 install

А в /export/home/me/Opt/boostpython/lib я сделал мягкую ссылку

$ ln -s libboost_python36.so.1.67.0 libboost_python3.so

Makefile

PYTHON_VERSION = 3.6
PYTHON_HOME_PATH = /export/home/me/anaconda3/
PYTHON_INCLUDE = $(PYTHON_HOME_PATH)/include/

BOOST_INC = /export/home/me/Opt/boostpython/include/boost/
BOOST_LIB = /export/home/me/Opt/boostpython/lib/
BOOST_PYTHON_LIB = /export/home/me/Opt/boostpython/lib/

TARGET = main
EXTEND_FILE = main_ext

$(TARGET).so:$(TARGET).o
    g++ -shared depend.o -L$(BOOST_LIB) -L$(BOOST_PYTHON_LIB) -lboost_python3 `/export/home/me/anaconda3/bin/python3.6m-config --libs --ldflags` -o depend_ext.so
    g++ -shared depend.o $(TARGET).o -L$(BOOST_LIB) -L$(BOOST_PYTHON_LIB) -lboost_python3 `/export/home/me/anaconda3/bin/python3.6m-config --libs --ldflags` -o $(TARGET).so
    mv $(TARGET).so $(EXTEND_FILE).so

depend.o:depend.cpp
    g++ `/export/home/me/anaconda3/bin/python3.6m-config --includes` -fPIC -c depend.cpp -O3 -std=c++11

$(TARGET).o:$(TARGET).cpp
    g++ `/export/home/me/anaconda3/bin/python3.6m-config --includes` -fPIC -c depend.cpp $(TARGET).cpp -O3 -std=c++11

clean:
    rm *.so *.o *.gch

Но когда make, я получил ошибку

g++ -shared depend.o -I/export/home/me/Opt/boostpython/include/boost/ -L/export/home/me/Opt/boostpython/lib/ -L/export/home/me/Opt/boostpython/lib/ -lboost_python3 `/export/home/me/anaconda3/bin/python3.6m-config --libs --ldflags` -o depend_ext.so
/usr/bin/ld: /export/home/me/anaconda3/lib/python3.6/config-3.6m-x86_64-linux-gnu/libpython3.6m.a(abstract.o): unrecognized relocation (0x2a) in section `.text'
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
make: *** [main.so] Error 1

Я получил main.o и depend.o, ошибка произошла на этапе связывания. Как я могу это исправить?

...