Компиляция caffe, вызывающая неопределенные ссылки с пространством имен google

У меня были проблемы с моим кодом, который вызывал ошибки из-за gflags. Поэтому я решил поиграть с репозиториями gflags и ссылками вручную, что кажется плохой идеей. Теперь я даже не могу скомпилировать caffe.

При выполнении всей этой следующей команды

make all -j $(($(nproc) + 1))

Я получаю следующее сообщение об ошибке.

.build_release/tools/convert_imageset.o: In function `_GLOBAL__sub_I_convert_imageset.cpp':
convert_imageset.cpp:(.text.startup+0x74): undefined reference to `google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char const*, bool*, bool*)'
convert_imageset.cpp:(.text.startup+0xa3): undefined reference to `google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char const*, bool*, bool*)'
convert_imageset.cpp:(.text.startup+0x117): undefined reference to `google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'

Я просмотрел Интернет в поисках возможных решений в некоторых потоках git и некоторых других тредах. . Ничего не работает. Любая помощь или предложение будут высоко оценены.


person MIRMIX    schedule 09.06.2017    source источник


Ответы (1)


Проблема решается загрузкой пакета gflags и установкой его вручную. Используя следующие команды:

$ tar xzf gflags-$version-source.tar.gz
$ cd gflags-$version
$ mkdir build && cd build
$ ccmake ..

  - Press 'c' to configure the build system and 'e' to ignore warnings.
  - Set CMAKE_INSTALL_PREFIX and other CMake variables and options.
  - Continue pressing 'c' until the option 'g' is available.
  - Then press 'g' to generate the configuration files for GNU Make.

$ sudo make -j4
$ sudo make test    -j4 
$ sudo make install -j4
person MIRMIX    schedule 09.06.2017