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

时间:2015-05-24 18:12:52

标签: linux caffe fpic gflags

当我尝试在Linux Ubuntu 64上安装Caffe时出现错误。 错误如下:

  

/ usr / bin / ld:/usr/local/lib/libgflags.a(gflags.cc.o):对`.rodata'重新定位R_X86_64_32S制作共享对象时不能使用;用-fPIC重新编译
  /usr/local/lib/libgflags.a:错误添加符号:错误值

我尝试使用-fPIC重新编译gflags库,但错误更改为:

  

src / caffe / common.cpp:在函数'void caffe :: GlobalInit(int *,char ***)'中:   src / caffe / common.cpp:35:5:错误:':: gflags'尚未声明为
     :: gflags :: ParseCommandLineFlags(pargc,pargv,true);

我还尝试更改caffe的CMakeCache.txt以设置-fPIC,但也不起作用。

1 个答案:

答案 0 :(得分:2)

此错误是因为gflags 2.1将名称空间的名称从google更改为gflags。 caffe社区的成员尝试修复此错误,尽管它们尚未最终确定。您应该将名称空间从google重新分配给gflags,如下所示。

在档案中

  • CAFFE /包含/ CAFFE / common.hpp
  • CAFFE /示例/ MNIST / convert_mnist_data.cpp

评论ifndef

// #ifndef GFLAGS_GFLAGS_H_
namespace gflags = google;
// #endif  // GFLAGS_GFLAGS_H_

这应该是暂时的。您应该在github上使用BVLC / caffe repo将您的caffe repo同步并偶尔同步,以便获得代码的最新更新。