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, чтобы вы могли получать последние обновления кода.