当前位置:   article > 正文

Ubuntu 16.04 系统 gflags & glog 安装_ubuntu16.04安装gflags

ubuntu16.04安装gflags

系统环境

  • Ubuntu 16.04
  • GCC 5.4

安装步骤

安装 GFlags

运行如下指令:

git clone https://github.com/gflags/gflags.git
cd gflags
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON -DGFLAGS_NAMESPACE=gflags ../ 
make -j4
sudo make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

安装 GLog

安装编译工具:

sudo apt-get install autoconf automake libtool
  • 1

运行如下指令安装:

git clone https://github.com/google/glog
./autogen.sh
./configure
make -j8
sudo make install
  • 1
  • 2
  • 3
  • 4
  • 5

常见问题

1、使用 GLog 报错:libglog.a: error adding symbols: Bad value
在使用 GLog 的工程中遇到了如下错误:

/usr/bin/ld: /usr/local/lib/libglog.a(libglog_la-logging.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libglog.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
  • 1
  • 2
  • 3

产生该问题的可能原因是在 64位系统中,不能链接 GLog 生成动态库。修改方法是 GLog 需要使用如下方式编译,加入 -fPIC 编译选项:

./configure CPPFLAGS="-I/usr/local/include -fPIC" LDFLAGS="-L/usr/local/lib"
  • 1

代替:

./configure
  • 1

2、错误:undefined reference to `google::FlagRegisterer::FlagRegisterer
如果你在编译 GLog 时遇到如下错误:

undefined reference to 'google::FlagRegisterer::FlagRegisterer'
  • 1

可以尝试先卸载 GFlags:

sudo apt-get purge libgflags-dev
  • 1

然后重新编译
另一种可能的解决方案是,在编译 GLog 时请使用:

./configure CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
  • 1

代替:

./configure
  • 1

3、错误:Make error: failed to link with libgflags.a
产生该问题的原因有可能是需要使用动态库方式编译 GFlags
将 GFlags 编译时选项改成动态库:

cmake .. -DBUILD_SHARED_LIBS=ON
  • 1

并重新编译 GFlags 和 GLog。

4、错误:something wrong with flag ‘flagfile’ in file ‘XXX.cc’
请参照 3 中的解决方案重新编译 GFlags 和 GLog。

本博客参考自

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/119768?site
推荐阅读
相关标签
  

闽ICP备14008679号