搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

abseil/abseil-cpp

开发工具

一套 C++17 公共库,在标准库之外补充容器、字符串、日志、同步等经生产验证的组件,适合 C++ 开发者直接引用。

18,197
3,190
C++
Apache-2.0
创建于 9 年前

项目介绍

Abseil 是一套开源的 C++17 库集合,代码取自 Google 内部的 C++ 代码库,经过大量测试并在生产中实际使用。它的定位是补充而非替代标准库:有些组件填补标准缺失的功能,有些则针对 Google 代码库中遇到的需求提供替代方案 (15)。

库按组件划分在 absl/ 目录下,包括 base、container(含无序的「Swiss table」容器)、strings、用于错误处理的 status、提供 LOG/CHECK 宏的 log、含 absl::Mutex 的 synchronization,以及 time、random、hash、numeric、flags 等 (19)。适合希望直接使用经过验证的基础组件、而不是自己重写一遍的 C++ 开发者。

快速使用

Bazel 和 CMake 是官方支持的构建系统 (17)。官方入口是 Abseil Quickstart,涵盖搭建开发环境、下载代码、运行测试和编译一个简单二进制程序 (16)。

  1. 准备受支持的编译工具链。Abseil 遵循 Google 的 Foundational C++ Support Policy,编译器、平台和构建工具的当前支持范围见其支持矩阵 (18)。
  2. 安装 Bazel 或 CMake,并下载仓库代码。
  3. 使用 Bazel 时按 Abseil Quickstart 操作;使用 CMake 时按 CMake Quickstart 操作,CMake 相关说明在 CMake/README.md 中 (17)。
  4. 构建库并运行测试,然后编译一个链接 absl 目标的小程序,这也是 Quickstart 给出的最终结果。

README 内没有直接给出 Bazel 或 CMake 命令,应按上述 Quickstart 页面操作,不要自行猜测构建命令。

使用约束

  • 代码要求符合 C++17;受支持的编译器和平台以支持矩阵为准,而不是本仓库 README (18)。
  • 项目建议用户尽量跟进 master 最新提交(live-at-head);同时也提供 Long Term Support 版本,为无法跟进的用户回移严重缺陷修复 (20)。
  • profiling 目前是其他 Abseil 库的私有依赖,不是公开组件 (19)。
  • 代码采用 Apache 2.0 许可证 (21)。

HotRepo 点评

该仓库创建于 2017 年,当年 9 月就在 Hacker News 上引发讨论 (3);站内快照记录的 Star 数增长平缓,2026 年 11 月 14 日曾出现在 C++ 日榜第 4 位。这种记录符合基础库的特征:采用情况由下游项目链接决定,而不是靠每日热度。2017 年的讨论已经点出一个真实阻力——构建该库需要 Bazel,让习惯 CMake 的 C++ 开发者犹豫 (6),当时一位 Google 工程师表示考虑到 Protocol Buffers 的需要,CMake 支持将很快加入 (7)。如今 CMake 已是官方构建系统,这一顾虑已得到解决,但两套构建工具链的分工仍需提前规划。另有评论者提到已公开的「C++ Tips of the Week」是额外的学习资源 (4)。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Abseil: C++ Common Libraries
▲ 241 · 88 条评论 · 2017年9月26日
AlphaZero finds faster hash functions
▲ 3 · 0 条评论 · 2023年2月7日
Abseil Common Libraries (C++)
▲ 1 · 0 条评论 · 2026年5月17日

相关推荐

  1. google/guava一套长期存在的 Java 核心库,为 JVM 和 Android 代码提供集合、并发与字符串工具。Java51,914
  2. openai/plugins一组 Codex 插件示例,用来为编程智能体补充技能、MCP 工具与工作流入口。JavaScript7,669
  3. ggml-org/llama.cpp在没有 Python 依赖的情况下,让 LLM 和 VLM 在本机 CPU、GPU、手机上跑推理。C++132,253