caffe перекомпилирует libgflags.a с ошибкой -fPIC

Я получаю сообщение об ошибке при попытке установить Caffe в Linux Ubuntu 64. Ошибка заключается в следующем:

/ 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);

Я также попытался изменить CMakeCache.txt caffe, чтобы установить -fPIC, но тоже не работают.

1 ответ

Эта ошибка возникает потому, что gflags 2.1 изменил имя пространства имен с google в gflags, Члены сообщества caffe предпринимают попытки исправить эту ошибку, хотя они еще не завершены. Вам следует переназначить пространство имен от google на gflags следующим образом.

В файлах

  • кофейный / включать / кофейный / common.hpp
  • кофейная / примеры /mnist/convert_mnist_data.cpp

Закомментируйте ifndef

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

Это должно работать временно. Вы должны разветвляться и иногда синхронизировать репозиторий caffe с репозиторием BVLC/caffe на github, чтобы вы могли получать последние обновления кода.

Другие вопросы по тегам