最近在参与webrtc相关项目的simulation工程,项目中有使用到abseil(简称:absl),首先简单介绍一下。
abseil是一个谷歌开源的C++源码库,主要用于标准库的扩展,更多的介绍可见Introduction to Abseil,这里面的介绍非常详细。
abseil 模块简介:
base
:初始化,以及其它的基础代码。
algorithm
:对C++的库的补充,并为原算法提供了基于容器的版本。
container
:提供了更多的STL类型容器。
debugging
:用于检查泄漏的调试库。
memory
:包括兼容C++ 11版本的std::make_unique()和内存管理。
meta
:包括兼容C++ 11版本的类型检查,在C++ 14和C++ 17版本的C++ <type_traits>库中可用。
numeric
:兼容C++ 11的128位整数。
strings
:各种字符串工具。
synchronization
:并发原语和同步抽象。
time
:抽象了绝对时间点操作和时区操作。
types
:非容器工具的类型。
安装方式1:
- git下载源码:
$git clone https://github.com/abseil/abseil-cpp.git
cmake编译,如果系统没有安装cmake(ubuntu:sudo apt-get install cmake
)
2.进入abseil-cpp文件夹编译:
$ cd abseil-cpp
$ mkdir build && cd build
$ cmake .. -DABSL_RUN_TESTS=ON -DABSL_USE_GOOGLETEST_HEAD=ON -DCMAKE_CXX_STANDARD=11
CMACHYCXXORM标准=11使用C++ 11标准指导CMake构建。 - 构建CMake 测试目标,
cd ..
回到abseil-cpp文件夹下
$cmake --build . --target all
一旦构建了CMake测试,请使用ctest命令并行运行它们:
$ ctest
安装方式2:
安装和使用流程可以查看abseil C++ Quickstart,可以先按照这个英文说明文档进行操作,Mac用户也可以使用homebrew(可用于下载、管理第三方应用非常快速。)brew install abseil
快速安装。需要提前安装Cmake(安装指导:cmake官方Tutorial,也可参考其他安装教程)。
【避坑!abseil库安装别参照其他资料,会让你遇到各种意向不到的错误。官方文档说明言简意赅!】
参考博客:https://blog.youkuaiyun.com/don_chiang709/article/details/105291830