koz.ross 维护的一个 C 语言资源列表,包括了:构建系统、编译器、数据库、加密、初中高的教程/指南、书籍、库等等。
【特别提示】:伯乐在线已经在 GitHub 上发起了C 语言资源大全中文版的整理项目,链接:https://github.com/jobbole/awesome-c-cn。欢迎收藏和扩散。
我们计划把这个列表中的主要工具资源整理出更详细的介绍,并收录到伯乐在线资源频道。如有你有兴趣参加,请加 QQ:50872495。加 Q 时请注明「C语言大全」。// 这不是 QQ 群。
不过加入前,有几个小要求:
- 英文还不错,能读懂英文并用自己的话复述;
- 在用 C 语言;
构建系统
下面是一些 C 项目的自动化构建和测试工具。
- aimake – 一个被设计来避免复杂配置的构建工具。GNU GPL3 或更高版本。
- Autoconf – 一个可扩展的 M4 宏指令包,提供命令行脚本来自动配置软件源码包,是 Autotools 的一部分。GNU GPL3 或更高版本。
- Automake – 一个自动生成符合 GNU 代码标准的 Makefile.in 文件的工具。需要与 Autoconf 配合使用,它也是 Autotools 的一部分。GNU GPL3 或更高版本。
- Jam – 一个构建系统,它被设计的比make更加易用。隐式地理解 C 的构建规则。Jam License。
- Libtool – 一个通用库支持脚本,是 Autotools 的一部分。GNU GPL3 或更高版本。
- Meson – 一个非常快,用户友好的构建系统,基于 Ninja。Apache2.0.
编译器
- Clang – 一个基于 LLVM 的 C 的编译器,支持 C11 标准。NCSA.
- CompCert – 一个经过充分验证的 C 编译器。支持几乎所有的 C89 标准。GNU GPL2.1或更高版本。
- GCC – 在它的编译器集合中提供了 C 编译器。支持 C11 和 OpenMP 的标准。GNU GPL3 或更高版本。
- PCC – 一个值得尊敬的 C 编译器,支持 C99 标准。Various licenses,完全免费。
- TCC – 一个迷你,速度快的 C 编译器,支持 C99(除了复杂的类型)。 GNU LGPL2.1
加密
- GnuTLS – 一个安全通信库,实现了 SSL,TLS 和 DTLS。GNU GPL2.1 或更高版本。
- libgcrypt – 一个通用的密码库,支持多种加密方法。 GNU LGPL2.1 (代码),GNU GPL2.1 或更高版本(说明书和工具)。
- OpenSSL – 一个 SSL 和 TLS 协议的实现,还包括一个加密库。Dual Licensed under the OpenSSL License and the SSLeay License。
- libsodium – 一个现代,易用的加密库。Expat。
- libtomcrypt – 一个相当全面,模块化和可移植的工具集。公开领域。
- mbed TLS – 一个 C 实现的加密库。Apache2.0。
数据库
下面列出了基于 C API 的数据库和数据存储
- BerkeleyDB – 一个高性能的嵌入式键值对数据库。GNU AGPLv3。
- Hiredis – 一个极简的 Redis 客户端。3-clause BSD。
- LMDB – 一个极快,极简的嵌入式键值对数据存储系统。newOpenLDAP。
- MariaDB – 一个强壮,可扩展和可靠的 SQL 服务器,设计来作为 MySQL 的替代品。3-clause BSD。
- mongo-c-driver – 一个高性能的 MongoDB 客户端。Apache2.0.
- PostgreSQL – 一个强大的对象关系数据库系统。PostgreSQL licence。
- recutils – 一个工具和 C 库的集合,用于访问可编辑,纯文本的名为 recfiles 的数据库文件。GNU GPL3 或更高版本。
- Redis – 一个先进的键值对存储系统。3-clause BSD。
- sophia – 一个现代,可嵌入的键值对数据库。FreeBSD。
- SQLite – 一个自包含,无服务器,零配置,支持事务的 SQL 数据库引擎,包括 C 接口。公开领域。
- UnQLite – 一个自包含,无服务器,零配置,支持事务的 NoSQL 数据库引擎,包括 C 接口。FreeBSD。
文档生成
- Cxref – 生成 C 程序的文档,支持 LaTeX,HTML, RTF 或者 SGML 的格式。GNU GPL2.1
- DocOnce – 一种朴素的标签标记语言,可以用来生成多种格式的文档。3-clause BSD.
- Doxygen – 一个事实上的标准工具,用于从注释的代码中生成 C 文档。能够生成多种格式的文档。GNU GPL2.1。
- GTK-Doc – 一个从注释的代码中生成 C 文档的工具,支持 Autotools GNU GPL2.1(代码), GNU FDL1.1。
编辑器
这些是特别精致,IDE 类型的编辑器。如果你想要一个程序员的文本编辑器,看别的地方。此外,不管你选择哪一款编辑器,它都支持 C。
- Anjuta DevStudio – GNOME IDE。 GNU GPL2.1。
- Code::Blocks – 一个可扩展,可配置的 IDE,支持 C。GNU GPL3。
- CodeLite – 一个跨平台的 IDE。 GNU GPL2.1。
- Eclipse – 一个用java写成的 IDE。 EPL。
- Geany – 一个很小很快的 IDE。 GNU GPL2.1及更高版本。
- KDevelop – KDE IDE. GNU GPL2.1。
环境
下面列出了被设计来引领 Windows 进入支持 C 的 21 世纪的技术。
- Cygwin – 被设计用于在 Windows 下模拟 POSIX 兼容环境。Various licenses, all free。
- MinGW-w64 – 一个 Windows 下极简的 C 开发环境,支持 64 位。Various licenses, all free。
框架
这一节包括提供数据结构的大型库和你所期待“现代”的标准库。
- APR – Apache Portable Runtime;另一个跨平台的实用函数库。Apache2.0。
- C Algorithms – 一个常用算法和数据结构的集合。
- CPL – The Common Pipeline Library;一系列详尽,高效和强壮的软件工具包。GNU GPL2.1。
- EFL – 一个大型实用数据结构和函数的的集合。多种许可证,完全免费。
- GLib – 一个便携,高效和强大的实用函数和数据结构库。GNU LGPL2.1。
- GIO – 一个现代和易用的 VFS API。[GNU LGPL2.1]。
- GObject – 一个 C 的面向对象系统和对象模型。GNU LGPL2.1。
- libnih – 一个轻量级的 C 函数和数据结构库。GNU GPL2.1。
- libU – 一个提供基本实用函数的迷你库,包括内存分配,字符串处理和日志功能。
- PBL – 一个包括实用函数,特色数据结构等的大型库。GNU LGPL2.1及更高版本(库),GNU GPL2.1及更高版本(测试代码)。
- qlibc – 一个简单且强大的 C 库,当我们想要小且轻的库时,可作为 Glib 的替代品。qLib license (类似于 FreeBSD).
- stb – 一系列单文件 C 库。公共领域。
游戏编程
引擎
这些作为 C 游戏编程代码的例子。