系统环境

  • 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

安装 GLog

安装编译工具:

sudo apt-get install autoconf automake libtool

运行如下指令安装:

git clone https://github.com/google/glog
./autogen.sh
./configure
make -j8
sudo make install

常见问题

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

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

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

代替:

./configure

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

undefined reference to 'google::FlagRegisterer::FlagRegisterer'

可以尝试先卸载 GFlags:

sudo apt-get purge libgflags-dev

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

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

代替:

./configure

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

cmake .. -DBUILD_SHARED_LIBS=ON

并重新编译 GFlags 和 GLog。

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

本博客参考自

  • http://www.liuxiao.org/2018/04/glog-gflags-%E7%9A%84%E5%AE%89%E8%A3%85/
  • https://blog.csdn.net/zero_s_qiu/article/details/90665706

Ubuntu 16.04 系统 gflags glog 安装相关推荐

  1. Ubuntu 16.04系统实用插件安装方法

    Ubuntu 16.04系统实用插件安装方法 Ubuntu 16.04 系统实用插件安装方法链接 搜狗输入法 链接: https://blog.csdn.net/u010648921/article/ ...

  2. Ubuntu 16.04系统中编译安装FFmpeg 4.2.1(Android NDK r20)

    1.下载FFmpeg 4.2.1的源码,下载Android NDK r20,安装yasm sudo apt-get install yasm 2.解压缩源码包和Android NDK 3.修改ffmp ...

  3. Pwn环境配置(二)——VMware虚拟机安装Ubuntu 16.04系统

    Pwn环境配置(二) 安装Ubuntu 16.04系统,至于为什么非要是Ubuntu 16.04系统呢,我也不太清楚,只知道大佬们用的都是这个.好像是,它兼容性好之类的吧- 下面步入正题开始安装, 首 ...

  4. 在linux搭建wiki教程,在Ubuntu 16.04系统上安装WikkaWiki

    一.WikkaWiki介绍 WikkaWiki是一个灵活的.兼容标准的.轻量级的.平台独立的开源Wiki引擎,它使用PHP语言开发,后端存储采用了MySQL数据库.WikkaWiki的设计目标是速度快 ...

  5. linux升级安装失败,更新Ubuntu 16.04系统中安装Adobe Flash更新失败的解决

    最近在更新 Ubuntu 16.04系统的时候,发现总是在安装 Adobe Flash更新的时候失败,提示如下信息: 正在处理用于 update-notifier-common (3.168.5) 的 ...

  6. 安装ubuntu 16.04系统

    安装ubuntu 16.04系统 下载源及poweriso–制定U盘启动 源 http://releases.ubuntu.com/16.04.4/ poweriso http://www.power ...

  7. 使用U盘安装Ubuntu 16.04 系统

    使用U盘安装Ubuntu 16.04 系统 安装Ubuntu的方法有很多,本文介绍的是U盘安装Ubuntu的方法. 1.首先准备一个U盘,通常CD版2G就够了,而DVD版需要4G,插入U盘后,如果U盘 ...

  8. Ubuntu 16.04系统中利用CUDA安装更新NVIDIA显卡驱动程序的方法

    严正声明:本文系作者davidhopper原创,未经许可,不得转载. 在ThinkPad系列笔记本电脑中使用过Ubuntu 16.04系统的同学都知道,NVIDIA显卡驱动程序特别难安装.以我使用的T ...

  9. 在Ubuntu 16.04.6 LTS上安装python3.7和pip3后出现Command '('lsb_release', '-a')' 出错问题的解决方法

    在Ubuntu 16.04.6 LTS上安装python3.7和pip3后出现Command '('lsb_release', '-a')' returned non-zero exit status ...

最新文章

  1. 生成窄带信号_房间冲激响应RIR原理与模拟生成方法
  2. javascript王者归来--属性和方法的类型
  3. java二次雷达编码地址
  4. 正常访问静态文件,不要找不到静态文件报404
  5. nagios监控3306端口
  6. java商品管理系统(增删改查)
  7. python安装pyaudio
  8. CCNA考试题库中英文翻译版及答案5
  9. 优化命令之top——实时显示进程动态/查看进程信息
  10. ubuntu安装laravel,Docker is not running.
  11. 【python】【爬虫】爬取电子书《红星照耀中国》
  12. 构建安全新模式,零信任如何破局 ?
  13. 【已解决】LaTeX 调整段落之间的间距 (包含:只调整某一个section或者subsection中的段落间距)
  14. 拓嘉辰丰电商:拼多多宝贝排名查询方法
  15. Android开发实用技巧之一:全局获取Context的技巧
  16. android异步加载视频缩略图,Android 视频缩略图的缓存机制和异步加载
  17. java meta_java面试:你真的知道metaspace??
  18. 范美忠的逃生本能需要一种理性伪饰吗?
  19. window关闭临时ipv6地址、开启临时ipv6地址
  20. 【Python】PyQT5+爬虫实现简单音乐下载器

热门文章

  1. opencv中的人脸检测案例
  2. 搬家后计算机总重启,电脑老是开机后不久(几分钟)自动重启,重启一两遍后就可以正常运行...
  3. mysql+分表+1168,MySQL使用MERGE進行分表實現
  4. 计算机开机自动进入bios,电脑开机自动进入bios界面的原因及解决办法
  5. lingo标准模型与编程(附习题、代码)
  6. mysql数据库总是自动关闭_急求关于mysql数据库自动停止的问题
  7. 为什么要研究引起潜在大流行病的病原体?
  8. UILabel根据字数计算高度,宽度,行数
  9. linux php-fpm 配置文件,linux下php-fpm开启与关闭方法
  10. Scratch编程 烧脑算法——换位密码