abseil-cpp三方库编译(c++)
一、背景
最近工程需要用到protobuf及ceres三方库(ceres应该是只用了gflags和glog),编译proto v24.4版本,再更早一些的proto版本中,官方已经把abseil-cpp库做了编译隔离,需要自己手动去添加其编译依赖,网上查阅了一些abseil-cpp的编译资料,写的比较简单也出了问题,这里记录一下。
目标的编译和应用环境是ubuntu20.04,使用的absl reslease版本20240116.2,编译使用gcc
文章引用&转载请著名出处
二、编译准备
- 下载编译产出
产出版本下载: https://github.com/abseil/abseil-cpp/releases
- 解压下载
- 写个编译脚本,
1 #!/bin/bash
2 if [ ! -d "build" ];then
3 mkdir build
4 fi
5
6 if [ ! -d "output" ];then
7 mkdir output
8 fi
9
10 cd build
11
12 cmake .. \
13 -DCMAKE_INSTALL_PREFIX=../output \
14 -DGFLAGS=OFF \
15 -DMINIGLOG=ON \
16 -DBUILD_TESTING=OFF \
17 -DBUILD_SHARED_LIBS=ON \
18 -DABSL_PROPAGATE_CXX_STD=ON \
19 -DCMAKE_CXX_FLAGS=-fPIC
20
21 make -j12 install
编译产出的是动态库文件,如果不加编译选项默认是编译静态;如果编译静态库与其他动态库联动编译时,记得把-fPIC带上,或者使用POSITION_INDEPENDENT_CODE配置ON;
- 保存编译产出并进行工程集成
Retry
Retry