C 语言资源大全总结--各种框架各种开源库,c开发必备

C 语言资源大全

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

加密

数据库

下面列出了基于 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。

环境

下面列出了被设计来引领 Windows 进入支持 C 的 21 世纪的技术。

框架

这一节包括提供数据结构的大型库和你所期待“现代”的标准库。

  • 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 游戏编程代码的例子。

资源

这些是排序过的对游戏编程有用的库。

  • Allegro – 一个跨平台,视频游戏开发和多媒体库。zlib
  • Chipmunk2D – 一个快且轻量级的 2D 游戏物理库。Expat
  • CSFML – 一个用 C 封装的 SFMLzlib
  • FreeGLUT – 一个替代性的 OpenGL 实用工具包。允许用 OpenGL 上下文创建和管理窗口。X11
  • GLFW – 一个使用 OpenGL 上下文创建窗口的多平台库。zlib
  • libao – 一个有多种输出的跨平台音频库。GNU GPL2.1及更高版本。
  • RetroArch – libretro 的参考前端。GNU GPL3
  • SDL – 一个跨平台库,通过 OpenGL 提供音频,键盘,鼠标,操纵杆和图形硬件的底层访问。zlib
  • SDL2- 一个跨平台库,通过 OpenGL 提供音频,键盘,鼠标,操纵杆和图形硬件的底层访问。这是最新版本。zlib

通用编程

  • klib – 小且轻量级的常用算法和数据结构实现。Expat

图像

图像用户接口

这些具体来说就是控件工具包

JSON

  • Jansson – 一个编码,解码和处理 JSON 的 C 库。Expat
  • jsmn – 一个极简的 JSON 解析器。Expat
  • json-c – 一个处理 JSON 的库。Expat
  • WJElement – 高级 JSON 处理库,支持 JSON Schema。任意版本的 LGPL。
  • YAJL – 一个很快的 JSON 流解析 C 库。ISC

学习,参考和指南

下面列出了学习 C 编程的资源,或者跟 C 编程相关的有用的东西。

在线

参考
初级
中级
高级
自学教程

实体书

参考资料
初级
中级
高级

多媒体

  • FFMPEG – 一个完整,跨平台的录音,转换和流化视频以及音频的解决方案。GNU LGPL2.1 或更高版本,部分是 GNU GPL2.1 或更高版本。
  • GStreamer – 一个声音和可视化媒体的框架。GNU LGPL2.1
  • lodepng – 一个简单的 PNG 图像解码器和编码器,不需要其他依赖。3-clause BSD.

网络

网络框架

数值计算

  • apophenia – 一个用于统计和科学计算的库。GNU GPL2.1
  • ATLAS – 自动调谐线性代数软件。 3-clause BSD
  • BLAS – Basic Linear Algebra Subprograms;提供向量和矩阵操作的一系列操作。BLAS license
  • Cuba – 一个计算多维的数值积分的库。 GNU LGPLv3
  • FFTW – The Fastest Fourier Transform in the West;一个高度优化的快速傅立叶变换例程。GNU GPL2.1 或更高版本。
  • FLINT – Fast Library for Number Theory;一个支持算数,多项式,幂级数和矩阵等。GNU GPL2.1 或更高版本。
  • GLPK – GNU Linear Programming Kit;一个求解大规模线性规划,混合整数规划和其他相关问题。GNU GPL3 或更高版本。
  • GMP – GNU Multple Precision Arithmetic Library;一个支持任意精度计算的库。双重许可 GNU GPL2.1 和 GNU LGPLv3
  • GNU MPC – 一个支持复杂数字计算的库。GNU LGPL3 或更高版本。
  • GNU MPFR – 一个支持任意精度的浮点数计算库。GNU LGPL3 或更高版本(大多数最近版本),GNU LGPL2.1 或更高版本(2.4.x 之前)。
  • GNU MPRIA – 一个支持多精度合理区间运算的可扩展数学库。GNU GPL3 或更高版本。
  • GSL – The GNU Scientific Library;一个精确的数值计算库。GNU GPL3
  • KISS FFT – 一个非常快的傅里叶变换库。3-clause BSD
  • LAPACKE – 一个 LAPACK 的 C 接口。3-clause BSD
  • PARI/GP – 一个数论的计算机代数系统,包括 C 编译器。GNU GPL2.1 或更高版本。
  • PETSc – 一系列数据结构和例程,用于计算由偏微分方程建模的应用程序的可扩展并行解。FreeBSD
  • SLEPc – 一个在并行计算机中的解决大型,稀疏特征值问题的软件库。GNU LGPL3
  • Yeppp! – 非常快,SIMD 优化的数学库。 3-clause BSD

并行编程

  • cchan – 一个线程间通信通道构建的小型库。公共领域。
  • ck – 并发原语,安全内存回收机制和非阻塞数据结构。FreeBSD
  • mill – 用 C 写成的 Go 风格并发。X11
  • MPICH – MPI 的另一种实现。MPICH licence
  • OpenMP – 一组 C 编译指令,使其易于并行化代码。标准(许可不适用)。
  • OpenMPI – 一个消息传输接口实现。3-clause BSD
  • PETSc – 一系列数据结构和例程,用于计算由偏微分方程建模的应用程序的可扩展并行解。FreeBSD
  • pth – 一个非抢占式优先级调度多线程执行的可扩展实现。GNU GPL3 或者更高版本。
  • pthreads – POSIX 线程库。标准(没有适用的许可)。
  • SLEPc – 一个在并行计算机中的解决大型,稀疏特征值问题的软件库。GNU LGPL3
  • TinyCThread – 一个可扩展,小型的 C11 标准线程 API 实现。zlib

正则表达式

有些人遇到问题时就会想:“啊,我知道了,我可以使用正则表达式”。于是现在他们有了两个问题。- Jamie Zawinski。

  • PCRE – 与 Perl 5 正则表达式完全相同的实现。3-clause BSD
  • SLRE – Super Light Regular Expression library;一个 Perl 正则表达式语法子集的迷你实现。GNU GPL2.1
  • TRE – 一个与 POSIX 一致,充满特色的正则表达式库。FreeBSD

序列化

源码集锦

下面包含了一些小型源码集合。如果你想要大型且成熟的,看《框架》那一节。

  • CCAN – 模仿 Perl 的 CPAN,这是一个大的实用 C 代码集合。完整的列表在 这里。多种许可(所有都是免费软件)。
  • clib – 一个 C 软件包管理器,配备了一堆自己的库。 Expat
  • gnulib – 通用 GNU 代码的集合。多种许可证,全部免费。
  • libdjb – 做各种事情的库的集合。(显然)公共领域。

标准库

下面包括了标准 C 库。

字符串处理

测试

文本编辑器扩展

在几乎任何像样的程序员文本编辑器支持C之际,有一些扩展,让编辑器更加令人愉快。下面是根据编辑器分目录的。

Emacs

  • CEDET – Collection of Emacs Development Environment Tools;给 Emacs 提供一种类似 IDE 的特点,是内建的。GNU GPL3 或更高版本。
  • Flycheck – 现代语法检查。对于 C,它可以使用 GCC 或者 Clang 作为后端。GNU GPL3 或更高版本。
  • Yasnippet – 一个模板系统,支持 C 的通用代码片段。GNU GPL3 或更高版本。

Vim

工具

下面是实用的程序列表,包括了帮助你编写和调试 C 代码的库或者编译器,不包括编辑器。

  • adlint – 一个静态分析器。支持完全的 C89 标准和部分 C99 标准。GNU GPL3 或更高版本。
  • Artistic Style – 一个支持 C 的小而快的自动化代码格式化工具。GNU LGPL3
  • address-sanitizer – 一个很快的内存错误探测器。Apache2.0
  • biicode – 一个现代的 C 依赖管理器。Expat
  • c – 在命令行中编译和执行 C 脚本,也支持 shebang。 Expat
  • c99sh – 用 hash-bang 运行 C 文件。FreeBSD
  • CBMC – C Bounded Model Checker;一个检查数组边界,指针安全和用户自定义断言的工具。Original BSD
  • cdecl – 一个在线服务,能够把 C 的声明翻译成英文,反向也可以。公共领域。
  • cinclude2dot – 在 C 项目中使用 Graphviz 的图像包含依赖。任意的 GNU GPL 版本(根据文件中的要求)
  • Complexity – 一个测量 C 代码复杂性的工具。GNU GPL3 或更高版本。
  • DDD – 各种命令行调试器的图形前端。GNU GPL3 或更高版本。
  • fab – 让每次构建都最优的构建系统。GNU GPL3
  • GDB – The GNU Project debugger;一个 C 调试器。GNU GPL3 或更高版本。
  • Glade – 一个让 TK+ GUIs 开发更快的 RAD 工具。GNU GPL2.1
  • GMSL – GNU Make Standard Library;一个 GNU Make 额外功能的集合。3-clause BSD
  • GNU Global – 一个 C 的源码标签工具。GNU GPL3
  • gprof – 一个性能分析工具。GNU binutils 的一部分。GNU GPL3 或更高版本。
  • Highlight – 把源码转化为高亮的格式化文本。GNU GPL3
  • include-what-you-use – 帮助程序员发现不必要的包含和提供解决他们的建议。基于 LLVM/Clang(只能与它一起工作)。NCSA
  • indent – 自动格式化 C 代码,让它更容易阅读。也能把一种风格的代码转化为另一种。GNU GPL3 或更高版本。
  • Make – 一个控制程序的可执行和其他非代码文件的生成的工具。GNU GPL3 或更高版本(链接到 GNU 的实现)。
  • qo – 无需分开的配置文件的构建系统。Expat
  • rr – 记录非确定执行来允许可确定调试的调试器。FreeBSD
  • tup – 一个很快,基于文件,跨平台的构建系统。GNU GPL2.1
  • unifdef – 移除 #ifdef 和 #if 指令包含的文本,不会改变文件的其他部分。3-clause BSD 和 FreeBSD
  • Valgrind – 各种动态分析工具,包括一个内存泄漏检测工具。GNU GPL2.1

实用工具

下面是包罗万象的目录,主要是那些不适合放在其他目录的东西。

XML

“XML 是垃圾。真的,没有任何借口。XML 对人类不友好的,甚至对于电脑来说也是一场灾难。根本就没有这个可怕的垃圾存在的理由” -Linus Torvalds

【特别提示】:伯乐在线已经在 GitHub 上发起了C 语言资源大全中文版的整理项目,链接:https://github.com/jobbole/awesome-c-cn。欢迎收藏和扩散。

我们计划把这个列表中的主要工具资源整理出更详细的介绍,并收录到伯乐在线资源频道。如有你有兴趣参加,请加 QQ:50872495。加 Q 时请注明「C语言大全」。// 这不是 QQ 群。

不过加入前,有几个小要求:

  • 英文还不错,能读懂英文并用自己的话复述;
  • 在用 C 语言;
  • 6
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,对学习编程非常有帮助。而Visual C是一个由微软公司开发的集成开发环境(IDE),它提供了丰富的开发工具和资源,可以帮助开发者更轻松地学习和使用C语言。 Visual C中的开发资源包括以下几个方面: 1. 编译器和调试器:Visual C内置了C语言的编译器和调试器,可以将源代码转化为可执行代码,并且可以进行调试和错误查找。 2. 代码示例和模板:Visual C提供了大量C语言的示例代码和模板,这些代码可以帮助初学者了解C语言的基本语法和常用功能,同时也可以帮助有经验的开发者快速搭建项目框架。 3. 功能丰富的文件:Visual C内置了许多常用的文件,包括字符串处理、文件操作、图形界面等各个方面的开发者可以直接调用这些提供的函数来实现各种功能,大大减轻了编写代码的工作量。 4. 深入教程和文档:Visual C提供了详细的教程和文档,包括C语言的基础知识、高级用法和一些常见问题的解决方法。这些教程和文档可以帮助开发者从入门到精通地掌握C语言的使用技巧。 总之,Visual C作为一个专为C语言开发者设计的开发环境,提供了丰富的工具和资源,可以方便开发者快速学习和使用C语言。无论是初学者还是有经验的开发者,都可以通过Visual C来提高他们的编程技能,并实现各种各样的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值