最为全面的C 语言资源大全(上)

koz.ross 维护的一个 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 游戏编程代码的例子。

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 语言资源大全(上))