遇見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