遇见Google Abseil开源项目(一):cmake

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-cpp开源项目仓库链接

abseil的cmake方式编译

abseil的cmake方式编译

  1. git下载源码:$git clone https://github.com/abseil/abseil-cpp.git
  2. 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构建。
  3. 构建CMake 测试目标cmake --build . --target all
  4. 一旦构建了CMake测试,请使用ctest命令并行运行它们:$ ctest
以下是一些基于C++20标准的优秀开源项目的例子: 1. Abseil:由Google开发的通用C++库,提供了许多常用的数据结构、算法和工具,用于增强C++编程效率和可靠性。 2. Boost:一个广泛使用的C++库集合,提供了许多高质量、可移植和通用的组件,涵盖了从容器和算法到并发和网络等方面。 3. fmt:一个现代化的字符串格式化库,提供了一种简洁而直观的方式来格式化字符串,具有高性能和可扩展性。 4. Catch2:一个轻量级的单元测试框架,为C++开发者提供了简单易用的测试功能,支持丰富的断言和测试报告。 5. ASIO:一个跨平台的网络编程库,提供了异步网络操作和事件驱动的编程模型,适用于构建高性能的网络应用程序。 6. SQLite:一个嵌入式关系型数据库引擎,提供了轻量级、快速和可靠的数据库解决方案,广泛应用于各种应用领域。 7. OpenCV:一个开源计算机视觉库,提供了丰富的图像处理和计算机视觉算法,适用于图像识别、目标检测、图像处理等任务。 8. FastFlow:一个高性能的并行编程框架,用于构建并行和分布式计算应用,具有低延迟和高吞吐量的特点。 9. SPDLOG:一个快速的异步日志库,适用于高吞吐量的日志记录,提供了灵活的日志格式化和输出选项。 请注意,这些项目只是其中的一部分,还有许多其他优秀的基于C++20标准的开源项目可供探索和使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值