遇见Google Abseil开源项目
abseil项目介绍
Abseil已在Google历经十多年的开发,它的目的是为Google编程人员在各种项目上的工作需求提供支持,这些项目包括Protocol Buffers、gRPC和TensorFlow等。
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:非容器工具的类型。
Abseil的代码采用Apache许可,已发布在GitHub上。其Python版本的软件库也已发布。
abseil在Github上的仓库
abseil的cmake方式编译
- git下载源码:
$git clone https://github.com/abseil/abseil-cpp.git
- cmake编译,如果系统没有安装cmake(ubuntu: sudo apt-get install cmake)
$ 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 测试目标
cmake --build . --target all
- 一旦构建了CMake测试,请使用ctest命令并行运行它们:
$ ctest