Maintain a list of C language resources, including: building the system, the compiler, database, encrypted, junior middle school high tutorial/guides, books, library, etc.,
build system
Here are some C project automated build and test tools,
? Aimake - a build tool designed to avoid the complex configuration, GNU GPL3 or higher,
? Autoconf - an extensible M4 macro instruction package, provide command lines automatically configure software source code package, originally is a part of Autotools, GNU GPL3 or higher,
? Automake - an automatically generated Makefile with GNU code standards. In file tools, need to be used with Autoconf, it is a part of Autotools, GNU GPL3 or higher,
? Jam - a build system, it has been designed than make more easy to use, the implicit understanding of C build rules, the Jam License,
? Libtool -- a common library support script, is part of the Autotools, GNU GPL3 or higher,
? Meson - a very fast and user friendly building system, based on the Ninja, Apache2.0.
The compiler
? Clang - a C compiler, based on the LLVM support C11 standard, NCSA.
? CompCert - a C compiler, been fully verify support almost all the C89 standard GNU GPL2.1 or higher,
? GCC - in its compiler collection provides a C compiler, support C11 and OpenMP standard, GNU GPL3 or higher,
? The PCC - a respectable C compiler, support for C99 standard, Various licenses, completely free,
? TCC - a mini, fast C compiler, support for C99 (in addition to the complex type), the GNU LGPL2.1
Encryption
? GnuTLS - a secure communication library, has realized the SSL, TLS and DTLS, GNU GPL2.1 or higher,
? Libgcrypt - a generic code library, support a variety of encryption methods, GNU LGPL2.1 (code), the GNU GPL2.1 or higher (manual and tools),
? OpenSSL - a SSL and TLS protocol implementation, also includes a encryption library, Dual Licensed under the OpenSSL License and the SSLeay License,
? Libsodium - a modern, easy to use encryption library, the Expat,
? Libtomcrypt - a fairly comprehensive, modular and portable tool set, public areas,
? Mbed TLS - a library of C implementation of encryption, Apache2.0,
Database of
The following is a list of database based on the C API and data storage
? BerkeleyDB - a high-performance embedded key values to the database, the GNU AGPLv3,
? Hiredis - a minimalist Redis client, 3 - clause BSD,
? LMDB - an extremely fast, minimalism embedded key values for data storage system, newOpenLDAP,
? MariaDB - a strong, extensible and reliable SQL server, design as a substitute for MySQL, 3 - clause BSD,
? Mongo - c - driver - a high-performance mongo client, Apache2.0.
? PostgreSQL - a powerful object relational database system, PostgreSQL licence,
? Recutils - a collection of tools and C library, used to access the editable, plain text database file, called recfiles GNU GPL3 or higher,
? Redis - a key/value pair advanced storage system, 3 - clause BSD,
? Sophia - a modern, embeddable key values to the database, FreeBSD,
? SQLite - a self contained, no server, zero configuration, SQL database engine supports transactions, including the C interface, public areas,
? UnQLite - a self contained, no server, zero configuration, no database engine supports transactions, including the C interface, FreeBSD,
Document generation
? Cxref - generated C program documentation, support LaTeX, HTML, RTF or SGML format, GNU GPL2.1
? DocOnce - a simple markup language, which can be used to generate a variety of document format, 3 - clause BSD.
? Doxygen - a DE facto standard tool for comments from the code generated in C document, can produce a variety of format of the document, the GNU GPL2.1,
? GTK - Doc - a document from the comments in the code generated C tools, support Autotools GNU GPL2.1 (code), the GNU FDL1.1,
The editor
These are particularly delicate, IDE type editor, if you want to be a programmer of a text editor, see other places, in addition, no matter you choose which a editor, it is supported by C,
? Anjuta DevStudio - GNOME IDE, the GNU GPL2.1,
? Code: : Blocks - an extensible, configurable IDE, support for C, the GNU GPL3,
? CodeLite - a cross-platform IDE, the GNU GPL2.1,
? Eclipse - a written in Java IDE, EPL,
? Geany - a small soon IDE, GNU GPL2.1 and higher,
? KDevelop IDE - KDE. GNU GPL2.1,
Environment
Listed below is designed to guide the Windows into the support technology of the 21st century, C
? Cygwin - designed to simulation POSIX compliant under Windows environment, Various licenses and all free,
? MinGW - w64 - a minimalist C development environment under Windows, support 64 - bit, Various licenses and all free,
Framework
This section includes a large library of data structure and what you are looking forward to "modern" standard library,
? APR - Apache Portable Runtime. The other a cross-platform utility functions of the library, Apache2.0,
? C Algorithms, a set of Algorithms and data structures,
? CPL - The Common Pipeline Library; A series of detailed, high efficiency and strong software kit, GNU GPL2.1,
? EFL - a large practical data structure and functions of collection, a variety of license, completely free,
? GLib - a portable, high efficiency and powerful utility functions and data structures, the GNU LGPL2.1,
? VFS GIO - a modern and easy to use API, [GNU LGPL2.1],
? GObject - a C object-oriented system and object model, the GNU LGPL2.1,
? Libnih - a lightweight C library functions and data structure, the GNU GPL2.1,
? LibU - a mini library provides basic utility functions, including memory allocation, string handling and logging,
? PBL - including a practical function, the characteristic data structures such as large libraries, the GNU LGPL2.1 (library), and higher version of the GNU GPL2.1 and higher (tests),
? Qlibc - a simple and powerful C library, when we want to be small and light library, can be used as a substitute, Glib qLib license (similar to the FreeBSD).
? STB - a series of single file C library, the public domain,
game programming
Engine
These as an example of C game programming code,
? Corange - a pure C game engine, FreeBSD,
? Darkplaces - a Quake2 a modified version of the engine, the GNU GPL2.1,
? Ioquake3 - Quake3 engine, free at last, the GNU GPL2.1,
? Orx - a portable, lightweight, plug-ins, and data driven, for 2 d game engine, zlib,
? Quake2 - Quake2 engines, GNU GPL2.1,
? Spearmint - a designed for FPS game engine, GNU GPL3 and higher,
Resources
These are the sort of useful library for game programming,
? Allegro - a cross-platform, video game development and multimedia library, zlib,
? Chipmunk2D - a fast and lightweight 2 d game physics library, the Expat,
? CSFML - an encapsulated with C SFML, zlib,
? FreeGLUT - an alternative OpenGL utility package, allowed to use OpenGL context to create and manage Windows, X11,
? GLFW - use OpenGL context to create a window of multi-platform library, zlib,
? Libao - a multiple output cross-platform audio library, GNU GPL2.1 and higher,
? RetroArch - libretro reference front-end, the GNU GPL3,
? SDL - a cross-platform library, through the OpenGL provide audio, keyboard, mouse, joystick, and the bottom layer of graphics hardware access and zlib,
? SDL2 - a cross-platform library, through the OpenGL provide audio, keyboard, mouse, joystick, and the bottom layer of graphics hardware access, this is the latest version, zlib,
Generic programming
? Klib - small and lightweight algorithms and data structures to realize, the Expat,
Image
? Cairo - a 2 d image library, or the GNU LGPL2.1 MPLv1.1,
? Cogl - a GPU images and practical API, the Expat (depend on using 3 - clause BSD license, libraries use LGPLv2.1 permission),
? Clutter - a UI library based on OpenGL, GNU LGPL2.1,
? Utility library, heman - a mini image processing a height map, chart, distance field, such as the Expat,
? Libcaca - a terminal interface based ASCII renderer, WTFPLv2,
? Libimagequant - small and lightweight library, used for high quality from RGBA image conversion to figure eight pixels, FreeBSD,
? Libjpeg - turbo - a faster reading and writing JPEG files, Various licences,
? Libpng - official PNG reference library, libpng license,
? Libxmi - a rasterizer 2 d bitmap function library, GNU GPL3 or higher,
? Mozjpeg - a JPEG image quality encoder, 3 - clause BSD,
? OpenGL - a high-performance graphics industry standard, provides the native C language bindings, Various licenses,
User interface image
These specifically control toolkit
? GTK + - a cross-platform toolkit, control the GNU LGPL2.1,
? IUP - another cross-platform toolkit, control the Expat,
? nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull