Linux安装gflags库

Linux安装gflags库

个人使用gflags作为linux-C的命令行解析工具依赖库,记录安装过程以及一些坑:

安装

克隆源码

git clone https://github.com/gflags/gflags

编译安装

cd gflags

mkdir build

cd build

cmake -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DINSTALL_HEADERS=ON -DINSTALL_SHARED_LIBS=ON -DINSTALL_STATIC_LIBS=ON ..

make -j4 

make install

加载

ldconfig

验证

ls /usr/local/lib/libgflags* -l

验证结果:

-rw-r--r-- 1 root root 255346 Jul 19 16:36 /usr/local/lib/libgflags.a
lrwxrwxrwx 1 root root     16 Jul 19 16:36 /usr/local/lib/libgflags.so -> libgflags.so.2.2
lrwxrwxrwx 1 root root     18 Jul 19 16:36 /usr/local/lib/libgflags.so.2.2 -> libgflags.so.2.2.2
-rwxr-xr-x 1 root root 156210 Jul 19 16:36 /usr/local/lib/libgflags.so.2.2.2
-rw-r--r-- 1 root root 255154 Jul 19 16:36 /usr/local/lib/libgflags_nothreads.a
lrwxrwxrwx 1 root root     26 Jul 19 16:36 /usr/local/lib/libgflags_nothreads.so -> libgflags_nothreads.so.2.2
lrwxrwxrwx 1 root root     28 Jul 19 16:36 /usr/local/lib/libgflags_nothreads.so.2.2 -> libgflags_nothreads.so.2.2.2
-rwxr-xr-x 1 root root 151850 Jul 19 16:36 /usr/local/lib/libgflags_nothreads.so.2.2.2

使用

由于include文件和lib文件是分开的,因此,编写cmakeLists如下:

include_directories(/usr/local/include)
link_directories(/usr/local/lib)
SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-lgflags")

遇到问题与解决方式

  • error while loading shared libraries: libgflags.so.2.2: cannot open shared object file: No such file or directory

    • 出现这个问题,是因为我们的程序在编译阶段,会自动调用/usr/和/usr/local下的库,而运行阶段,由于是动态链接库,可能会出现.so文件找不到的情况,这个时候很简单,只需要加动态链接库加入进去即可,可以配置到LD_LIBRARY_PATH或者添加/etc/ld.so.conf配置均可。如果只是一次操作,那么直接执行export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 就行了。
  • 如果在安装阶段出现cmake不存在,那么安装一下cmake即可

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值