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即可

你可能感兴趣的:(原创,linux)