此页面的目的是构建开源 C++ 库的比较列表,使得人们在需要特定功能的实现时,不必浪费时间在网上(DuckDuckGo、谷歌、必应等)搜索。
若你知道可能对其他人有用的库,请在此添加到它的链接。能包含进来的库没有限制,但是必须能便捷地下载库的源码。
以“原态”提供此页面——希望这有用,但不提供任何担保。过时、误导或错误的链接可能出现于此。若你注意到这些错误,则改正它会很有意义。
 
包管理器
| 包管理器 | 
简述 | 
| build2 | 
一个开源的 (MIT)、跨平台的构建工具链,旨在为开发和打包 C/C++ 项目时提供如 Rust Cargo 一样的便利性,同时提供构建系统中的深度定制和灵活性。 | 
| cget | 
CMake 包检索工具,可用于下载并安装 CMake 包。 | 
| cmodule | 
非侵入式 CMake 依赖管理。 | 
| conan | 
去中心化、开源 (MIT) 的 C/C++ 包管理器。 | 
| CPM.cmake | 
一段可以为 CMake 加入依赖管理功能的 CMake 脚本。它是作为 CMake 的 FetchContent 模块的一个简单包装构建的。该模块加入了版本控制、缓存、简单 API 等功能。 | 
| hunter | 
一个 CMake 驱动的跨平台包管理器,服务于 C/C++ 项目。 | 
| spack | 
一个超级计算机、Linux、macOS 平台的包管理器。它使得安装科学软件变得简单。非绑定于某一特定语言。 | 
| teaport | 
一个受 cocoapods 启发的依赖管理器。 | 
| vcpkg | 
一个 Windows、Linux、macOS 平台的 C++ 包管理器。 | 
| xmake | 
跨平台的基于 Lua 的 C/C++ 构建工具和包管理器。 | 
库
操作系统
- 访问控制
 
- 扩展属性
 
图形用户界面
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| IUP | 
 | 
 | 
 | 
| Nuklear | 
单头文件 ANSI C 立即模式的跨平台 GUI 库。(文档) | 
 | 
 | 
| lvgl | 
强力且易用的嵌入式 GUI 库,提供大量部件,高级视觉效果(透明度、抗锯齿、动画)和低内存要求 (16K RAM, 64K Flash)。(文档) | 
 | 
 | 
| tiny file dialogs | 
单个跨平台 C 文件(无初始化,无主循环,6 个模态函数调用) | 
 | 
 | 
Gtk+ 部件
Microsoft Excel
音频
- CD
 
- 编解码器
 
- 基础结构
 
- 语音合成
 
视频
- 编解码器
 
文件
数学
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| gsl | 
GNU 科学运算库 (GSL) 是一个 C/C++ 数值库 (源码) | 
GPL | 
make | 
- 整数多维插值
 
- 线性代数
 
- 金融
 
- 快速傅里叶变换(FFT)
 
- 多精度
 
- 信号处理
 
图形
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| allegro | 
Allegro-5 是一个主要针对视频游戏与多媒体编程的跨平台库。 | 
 | 
 | 
| babl | 
 | 
 | 
 | 
| Bgfx | 
跨平台,图形 API 无关的,"请自备引擎/框架" 风格的渲染库。 | 
BSD 2 | 
 | 
| cairo | 
 | 
 | 
 | 
| raylib | 
跨平台的 C99 游戏开发库,提供 OpenGL 硬件加速,完整 3D 支持,骨骼动画,着色器,字体,音频,数学,GUI,等等。 (源码) (文档) | 
Zlib | 
cmake, make, vcpkg, zig | 
| SAIL | 
松鼠抽象图像库 (Squirrel Abstract Image Library),是一个小型,快速且跨平台的图像解码库。 | 
 | 
 | 
| SDL | 
简单直接媒体层 (Simple DirectMedia Layer),是提供输入、音频、绘图等更多功能的跨平台库。 | 
 | 
 | 
| SIGIL | 
 | 
 | 
 | 
| Simple2d | 
小型、简单、跨平台的 SDL2/OpenGL 包装,提供绘制、媒体、窗口管理和输入等能力。 | 
MIT | 
 | 
通用
进程间
数据库
配置
环境
通信
压缩
并发
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| ck | 
 | 
 | 
 | 
| MutexGear | 
仅用互斥体实现的同步(滚轮,读写锁,工作队列)。 | 
MutexGear 库许可 | 
 | 
数据类型
XML
测量
面向对象编程
网络库
Web 前端
调试
| 库名 | 
简述 | 
协议 | 
配置手段 | 
| dbg-macro | 
一组用于打印并返回表达式的值的宏,对于快速调试来说非常方便。受 Rust 的 dbg!(...) 宏和它的 C++ 变体启发。 | 
MIT | 
 | 
参阅
外部链接