在制作共享对象时,不能使用对“_Py_NotImplementedStruct”的重定位R_X86_64_32S;用-fPIC重新编译

时间:2016-02-24 14:57:42

标签: python centos7 caffe pycaffe

我在Centos 7(512MB)上运行后收到此错误消息。

sudo make pycaffe

sudo make distribute

错误消息

CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp
/bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32S against `_Py_NotImplementedStruct' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libpython2.7.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [python/caffe/_caffe.so] Error 1

2 个答案:

答案 0 :(得分:3)

我在尝试安装dlib时遇到了同样的问题。解决方案是使用--enable-shared标志构建Python。使用pyenv时可以这样做:

PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --force 2.7.11

答案 1 :(得分:0)

我最近遇到了另一个软件包的类似错误。

尝试在配置或构建时传递CFLAGS="-fPIC"CXXFLAGS="-fPIC"。这对我有用。

您可能还想查看this page on -fPIC errors