使用google命名空间编译导致未定义引用的caffe

时间:2017-06-09 09:24:01

标签: caffe gflags

我的代码出现问题,因为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线程和其他一些threads中通过Internet查看了一些可能的解决方案。没什么办法。任何形式的帮助或建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

通过下载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