Makefile 使用-fPIC libglog.a错误重新编译caffe

Makefile 使用-fPIC libglog.a错误重新编译caffe,makefile,debian,caffe,fpic,glog,Makefile,Debian,Caffe,Fpic,Glog,我正试图在Debian上安装Caffe,但当我执行makeall时,我收到以下错误: /usr/bin/ld:/usr/local/lib/libglog.a(logging.cc.o):创建共享对象时,不能使用针对“.rodata”的重新定位R_X86_64_32;用-fPIC重新编译 /usr/local/lib/libglog.a:无法读取符号:错误值 collect2:错误:ld返回了1个退出状态 make:**[.build\u release/lib/libcaffe.so]错误1

我正试图在Debian上安装Caffe,但当我执行
makeall
时,我收到以下错误:

/usr/bin/ld:/usr/local/lib/libglog.a(logging.cc.o):创建共享对象时,不能使用针对“.rodata”的重新定位R_X86_64_32;用-fPIC重新编译

/usr/local/lib/libglog.a:无法读取符号:错误值

collect2:错误:ld返回了1个退出状态 make:**[.build\u release/lib/libcaffe.so]错误1

我应该在哪里添加
-fPIC
标志? 我还读到,这对于
gflags
来说是不够的


有什么建议吗?

似乎是用-fPIC重新编译有问题的第三方的唯一解决方案。(除非您可以链接到.so而不是.a)
包中静态库的标准构建是在没有-fPIC的情况下构建。

例如,在glog中,您应该将其添加到compile.ac中的C标志中。

在glog中,将
-fPIC
添加到
Makefile.AM
中的
AM\u cxflags
。将其添加到
cxflags
环境变量中对我没有任何影响。

Caffe是否有关于添加到任何特定的
CFLAGS
类变量的文档?您可能还想向他们报告他们的构建已损坏(因为它已损坏),他们应该自己处理此问题。我找不到任何关于添加特定
CFLAGS
的文档哦,嗯,我没有正确阅读该错误。这可能是如何编译
glog
库的问题。(我假设是你自己编译的。)你可能需要用
-fPIC
重新编译该库。经过一些尝试后,我用
-fPIC
解决了重新编译
glog
gflags
的问题,谢谢:)如果你能写出你的解决方案,你应该把它作为答案添加到这里并接受它。您可能还希望将此报告给
glog
人员。