2

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

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

我尝试用 重新编译 gflags 库-fPIC,但错误变为如下:

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,但也不起作用。

4

1 回答 1

2

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

在文件中

  • caffe/include/caffe/common.hpp
  • caffe/examples/mnist/convert_mnist_data.cpp

注释掉ifndef

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

这应该暂时起作用。您应该分叉并偶尔将您的 caffe 存储库与 github 上的 BVLC/caffe 存储库同步,以便获得代码的最新更新。

于 2015-06-30T03:53:33.607 回答