构建系统
下面是一些 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 游戏编程代码的例子。
Corange – 一个纯 C 的游戏引擎。FreeBSD。
Darkplaces – 一个 Quake2 引擎的修改版本。GNU GPL2.1。
ioquake3 – Quake3 引擎,终于免费啦。GNU GPL2.1。
Orx – 一个便携,轻量级,插件化,数据驱动,面向 2D 的游戏引擎。zlib。
Quake2 – Quake2 引擎。GNU GPL2.1。
Spearmint – 一个为 FPS 游戏设计的引擎。GNU GPL3及更高版本。
资源
这些是排序过的对游戏编程有用的库。
Allegro – 一个跨平台,视频游戏开发和多媒体库。zlib。
Chipmunk2D – 一个快且轻量级的 2D 游戏物理库。Expat。
CSFML – 一个用 C 封装的 SFML。zlib。
FreeGLUT – 一个替代性的 OpenGL 实用工具包。
允许用 OpenGL 上下文创建和管理窗口。X11。
GLFW – 一个使用 OpenGL 上下文创建窗口的多平台库。zlib。
libao – 一个有多种输出的跨平台音频库。GNU GPL2.1及更高版本。
RetroArch – libretro 的参考前端。GNU GPL3。
SDL – 一个跨平台库,通过 OpenGL 提供音频,键盘,鼠标,操纵杆和图形硬件的底层访问。zlib。
SDL2- 一个跨平台库,通过 OpenGL 提供音频,键盘,鼠标,操纵杆和图形硬件的底层访问。这是最新版本。zlib。
通用编程
klib – 小且轻量级的常用算法和数据结构实现。Expat。
图像
Cairo – 一个 2D 图像库。GNU LGPL2.1 或者 MPLv1.1。
Cogl – 一个 GPU 图像和实用 API。Expat(依赖使用 3-clause BSD 许可,库使用 LGPLv2.1 许可)。
Clutter – 一个基于 OpenGL 的 UI 库。GNU LGPL2.1。
heman – 一个迷你图像实用工具库,处理高度图,法线图,距离场等。Expat。
libcaca – 一个基于终端接口的 ASCII 渲染器。WTFPLv2。
libimagequant – 小且轻量级的库,用于高质量的从 RGBA 图像到 8 位像素图的转换。FreeBSD。
libjpeg-turbo – 一个更快的读写 JPEG 文件库。Various licences。
libpng – 官方 PNG 参考库。libpng license。
libxmi – 一个光栅化 2D 位图的函数库。GNU GPL3 或更高版本。
mozjpeg – 一个提升 JPEG 图像质量的编码器。3-clause BSD。
OpenGL – 一个高性能图像的工业标准,提供了原生 C语言 绑定。Various licenses。
图像用户接口
这些具体来说就是控件工具包
GTK+ – 一个跨平台的控件工具包。GNU LGPL2.1。
IUP – 另一个跨平台的控件工具包。Expat。
Tk – 一个基本控件工具包,Tcl/Tk 的一部分。Tcl/Tk License。
XForms Toolkit – 一个为 XWindow 设计的控件工具包。GNU LGPL2.1。
JSON
Jansson – 一个编码,解码和处理 JSON 的 C 库。Expat。
jsmn – 一个极简的 JSON 解析器。Expat。
json-c – 一个处理 JSON 的库。Expat。
WJElement – 高级 JSON 处理库,支持 JSON Schema。任意版本的 LGPL。
YAJL – 一个很快的 JSON 流解析 C 库。ISC。
学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习C/C++或者为了入行、转行学习C/C++的伙伴可以私信回复小编学习领取全套免费C/C++学习资料、视频