C-Language open source project worth learning

Source: Internet
Author: User
Tags compact gettext gtk imagemagick sqlite system log xml parser free ssl

The C-language open source project worth Learning-1. Webbench

Webbench is a very simple web site pressure measurement tool that is used under Linux. It uses fork () to simulate multiple clients accessing the URL we set at the same time, testing the performance of the site under pressure, and simulating up to 30,000 concurrent connections to test the load capacity of the site. Webbench use C language, code is too concise, the source add up to less than 600 lines.

Download Link: http://home.tiscali.cz/~cz210552/webbench.html

-2. Tinyhttpd

TINYHTTPD is an ultra-lightweight HTTP server, developed in C language with only 502 lines (including comments), with a simple client that can read this code to understand the nature of an Http server.

Download Link: http://sourceforge.net/projects/tinyhttpd/

-3. Cjson

Cjson is a JSON codec in the C language, very lightweight, C files only more than 500 lines, the speed is very ideal.

Cjson also has several weaknesses, although the function is not very powerful, but the Cjson small body and speed is the most commendable. Its code is very well maintained, the structure is easy to understand and can be learned as a very good C language project.

Project home: http://sourceforge.net/projects/cjson/

-4. Cmockery

Cmockery is a lightweight framework that Google publishes for C unit testing. It is small, has no dependencies on other open source packages, and is less intrusive to the code being tested. Cmockery the source code line of less than 3K, you read the Will_return and mock source is at a glance.

Main Features:

    • Free and open source, Google provides technical support;
    • The lightweight framework makes testing faster and easier;
    • Avoid the use of complex compiler features, the old version of the compiler, the compatibility is good;
    • It is not mandatory to require the code to be tested to rely on the C99 standard, which is useful for the development of many embedded systems

Download Link: http://code.google.com/p/cmockery/downloads/list

-5. Libev

Libev is an open source event-driven library based on the infrastructure provided by OS such as Epoll,kqueue. Known for its efficiency, it can unify IO events, timers, and signals to be processed in a single set of event-handling frameworks. Based on the reactor model, the efficiency is high, and the Code is streamlined (4.15 versions over 8,000 lines), which is a good resource for learning event-driven programming.

Download Link: http://software.schmorp.de/pkg/libev.html

-6. Memcached

Memcached is a high-performance distributed memory object caching system for dynamic Web applications to mitigate database load. It provides the speed of a dynamic database-driven Web site by caching data and objects in memory to reduce the number of times the database is read. Memcached is based on a hashmap that stores key/value pairs. Memcached-1.4.7 's code volume is acceptable, only about 10K lines.

: http://memcached.org/

-7. Lua

Lua was great, and Lua was invented by Brazilians, which made me uncomfortable, but not blushing, most jealous.

What makes me blush is the source code of LUA, 100% ANSI C, which is not doped at all. It is easy to compile on any platform that supports the ANSI C compiler. I've tried, it's a bit of crap. The number of LUA code is small enough, 5.1.4 only 1.5W lines, minus blank lines and comments can be estimated to 1W lines.

: http://www.lua.org/

-8. Sqlite

SQLite is an open-source, embedded relational database that implements a self-contained, 0 configuration, transactional SQL database engine. It is characterized by its high portability, ease of use, compact structure, high efficiency and reliability. Small enough, roughly 30,000 lines C code, 250K.

: http://www.sqlite.org/.

-9. UNIX V6

UNIX V6 Kernel Source code includes device drivers, including about 10,000 lines, this number of source code, the beginner is able to fully understand. There is a saying that a person can understand the code limit of 10,000 lines, UNIX V6 kernel source code in terms of the number is exactly within this range. See here, do you have "if only 10,000 lines, maybe I can learn" idea?

On the other hand, recent operating systems, such as the latest version of Linux, are said to have more than 10 million lines of kernel source code. Even if you are not a beginner, it is virtually impossible to fully understand the entire code.

: http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6


NetBSD is a free, highly-ported unix-like operating system that is the most current portable platform operating system and can be executed on many platforms, from 64bit Alpha servers to handheld devices and embedded devices. The slogan for the NetBSD program is: "Of course it runs NetBSD". Its simple design, code specification, and many advanced features make it highly acclaimed in the industry and academia. Due to its concise design and advanced features, it has excellent performance in both production and research, and it also has a complete source code supported by the user. Many programs can be easily obtained by NetBSD Packages collection.

: http://www.netbsd.org/

C + + Resource Encyclopedia

Some summary lists of C + + frameworks, libraries, and resources include: standard library, Web application framework, AI, database, image processing, machine learning, logging, code Analysis, and more.

Standard library

C + + standard library, including STL containers, algorithms and functions.

    • C + + Standard Library: A collection of classes and functions, written in the core language, is also part of C++iso's own standards.
    • Standard Template Library: Templates
    • C Standard library Specification for POSIX Library:posix Systems
    • ISO C + + standards committee:c++ Standard Committee


C + + common frameworks and libraries

Apache C + + standard Library: A collection of algorithms, containers, iterators, and other basic components

The Asl:adobe source code library provides peer review and portable C + + source code libraries.

Boost: A collection of a large number of common C + + libraries.

BDE: The development environment from the Bloomberg Information Lab.

Cinder: Open Source Development community with professional quality and creative coding.

Cxxomfort: Lightweight, a library that contains only header files, porting some of the new features of C + + 11 to c++03.

Dlib: A common cross-platform C + + library designed using contractual programming and modern C + + technology.

Eastl:ea-stl Public part

Ffead-cpp: Enterprise Application Development Framework

Folly: Open source C + + library developed and used by Facebook

JUCE: A comprehensive C + + class library for developing cross-platform software

Libphenom: An event framework for building high-performance and highly scalable systems.

Libsourcey: c++11 evented IO for real-time video streaming and high-performance network applications

Multi-platform Tool library for LIBU:C language writing

The design of the Loki:c++ library includes common design patterns and the implementation of idioms.

Mili: Small C + + library with header files only

Openframeworks: Development of C + + toolkit for creative coding.

Qt: Cross-platform application and user interface framework

Reason: A cross-platform framework that makes it easier for developers to use Java. NET and Python, while also satisfying their needs for C + + performance and benefits.

ROOT: A range of object-oriented frameworks with all the capabilities to process and analyze large amounts of data very efficiently for use by the European Atomic Energy Research Institute.

STLport: A representative version of STL

STXXL: Standard Template Library for additional large datasets.

ultimate++: C + + cross-platform rapid application Development Framework

Windows Template Library: C + + libraries for developing Windows applications and UI components

Yomm11:c++11 's Open multi-methods.

Artificial intelligence
    • Btsk: Game Behavior Tree Launcher tool
    • Evolving Objects: A template-based, ANSI C + + Evolutionary computing library that can help you write your own random optimization algorithm very quickly.
    • The NEU:C++11 framework, a set of programming languages, is used to create multi-purpose software systems for AI applications.

Asynchronous event Loops
    • Boost.asio: A cross-platform C + + library for network and underlying I/O programming.
    • Libev: Full-Featured, high-performance time-cycle, slightly emulated libevent, but no longer as limited as libevent, but also fixed some of its bugs.
    • Libevent: Event Notification Library
    • LIBUV: Cross-platform asynchronous I/O.


Audio, sound, music, digital music library

    • FMOD: Easy-to-use game authoring tool for cross-platform audio engines and audio content.
    • Maximilian:c++ Audio and music digital signal processing library
    • OpenAL: Open source Audio Library-cross-platform audio API
    • Opus: A fully open, royalty-free, highly versatile audio codec
    • Speex: Free codec for opus abandonment
    • Tonic:c++ easy-to-use and efficient audio synthesis
    • Vorbis:ogg Vorbis is a fully open, non-proprietary, royalty-free, universal compressed audio format.


Biological information, genomics and biotechnology

    • Libsequence: C + + library for representing and analyzing population genetics data.
    • Seqan: Algorithms and data structures that focus on biological data sequence analysis.
    • Vcflib: C + + library for parsing and processing VCF files
    • WHAM: The genetic structure variation that applies the Lenovo test directly to the BAM file.


Compression and archive libraries

    • BZIP2: A completely free, free patent and high-quality data compression
    • Doboz: A compact library that can be decompressed quickly
    • PHYSICSFS: A library that provides abstract access to a variety of archives, primarily for video games, and is inspired partly by the Quake3 file subsystem.
    • Karchive: A library for creating, reading, and manipulating file archives (such as zip and tar), which provides transparent compression and decompression of data through a series of subclasses of Qiodevice, using gzip format.
    • LZ4: A very fast compression algorithm
    • Lzham: Lossless compression database, compression ratio close to LZMA, but decompression is much faster.
    • lzma:7z format default and general compression methods.
    • Lzmat: And its fast real-time lossless data compression Library
    • Miniz: Single C source file, condensed/expanded compression library, using zlib compatible Api,zip archive read/write, PNG write mode.
    • Minizip:zlib latest bug fixes, supports PKWare disk spanning, AES encryption and IO buffering.
    • Snappy: Fast compression and decompression
    • ZLib: A very compact data stream compression Library
    • Zziplib: Provides read access to the ZIP archive.

Concurrency of

Concurrent execution and multithreading

    • Boost.compute: C++gpu Compute Library for OpenCL
    • Bolt: C + + Template Library optimized for GPU
    • C++react: A reactive programming library for C++11
    • Intel Tbb:intel Threading Component Block
    • LIBCLSPH: OpenCL-based GPU-accelerated SPH Fluid Simulation Library
    • OpenCL: Open standards for heterogeneous systems with parallel programming
    • Openmp:openmp API
    • Thrust: Parallel algorithm library similar to the C + + Standard Template Library
    • HPX: Universal C + + runtime system for parallel and distributed applications of any size
    • VEXCL: C + + vector expression Template Library for Opencl/cuda.

    • C + + B-tree: A template Library for the command memory container based on the B-tree data structure
    • Implementation of open addressing hash table algorithm in hashmaps:c++

Cryptographic Science
    • Bcrypt: A cross-platform file encryption tool, encrypted files can be ported to all supported operating systems and processors.
    • Beecrypt:
    • Botan:c++ Encryption Library
    • crypto++: a free C + + library for encryption schemes
    • Complete implementation of the GNUPG:OPENPGP standard
    • GNUTLS: Secure Communication Library for SSL,TLS and DTLS protocols
    • Libgcrypt
    • Libmcrypt
    • LIBRESSL: Free SSL/TLS protocol, which belongs to a branch of OpenSSL
    • Libtomcrypt: A very comprehensive, modular, portable encryption tool
    • Libsodium: NACI-based encryption library, opinionated, easy to use
    • Nettle the underlying encryption library
    • OpenSSL: A powerful, commercial, fully functional, open source encryption library.
    • Tiny AES128 in C: a small, portable implementation of the AES128ESB encryption algorithm implemented with C


databases, SQL Server, ODBC drivers and tools

    • Hiberlite: C + + Object-relational mapping for Sqlite3
    • Hiredis: A very simple C client library for the Redis database
    • LevelDB: Fast Key-value repository
    • LMDB: An embedded key-value store that conforms to the four basic elements of a database
    • mysql++: C + + wrapper that encapsulates the MySQL API
    • ROCKSDB: Fast storage of embedded key values from Facebook
    • SQLite: A fully embedded, full-featured relational database with only hundreds of KB that can be properly included in your project.


Debug libraries, memory and resource leak detection, unit testing

    • Boost.Test:Boost Test Library
    • Catch: A very stylish, C + + native framework that contains only header files for unit testing, test-driven development, and behavior-driven development.
    • CppUnit: A C + + test framework ported by JUnit
    • Ctest:cmake test Driver
    • Googletest: Google C + + testing Framework
    • IG-DEBUGHEAP: Multi-platform debug heap for tracking memory errors
    • Libtap: Writing tests in C language
    • memtrack-for C + + tracking memory allocation
    • microprofile-Cross-platform Network attempt analyzer
    • Minunit: Using a C-written mini-unit test framework with only two macros
    • Remotery: A single C file parser for Web views
    • unittest++: Lightweight C + + unit Testing Framework

Game engine
    • Cocos2d-x: A cross-platform framework for building 2D games, interactive books, demos, and other graphical applications.
    • Grit: Community project for building a free game engine to implement the open world 3D game.
    • Open source high-performance real-time #d engine written in irrlicht:c++ language
    • Polycode:c++ implements an open-source framework for creating games (bundled with Lua).

Graphical user interface
    • Cegui: A flexible cross-platform GUI library
    • FLTK: Fast, lightweight cross-platform C++gui Toolkit.
    • GTK +: Cross-platform toolkit for creating a graphical user interface
    • GTKMM: The official C + + interface for the popular GUI library GTK +.
    • Imgui: Immediate-mode graphical user interface with minimal dependencies
    • Librocket:librocket is a C + + Html/css game interface Middleware
    • Mygui: Fast, flexible, simple GUI
    • Ncurses: End user Interface
    • Qcustomplot: QT Drawing controls with no more dependencies
    • QWT: QT controls for user and technology applications
    • Qwtplot3d: A feature-rich QT/OPENGL-based C + + programming library that essentially provides a bunch of 3D controls
    • Otterui:otterui is a user interface development solution for embedded systems and interactive entertainment software
    • Pdcurses Common graphics function library with source code and precompiled Library
    • WxWidgets C + + library, which allows developers to create applications for widows, Mac OS X,linux and other platforms using a code base

    • BGFX: Cross-platform rendering library
    • Cairo: 2D graphics library with support for multiple output devices
    • Horde3d a small 3D rendering and animation engine
    • Magnum C++11 and OpenGL 2d/3d graphics engine
    • Ogre 3D is a scene-oriented, real-time, flexible 3D rendering engine (not a game engine) written in C + +
    • OpenSceneGraph Open source 3D Graphics toolkit with high performance
    • PANDA3D is a framework for 3D rendering and game development, written in Python and C + +.
    • Skia Complete 2D Graphics library for drawing text, graphics, and images
    • Urho3d a cross-platform rendering and game engine.

Image processing
    • Boost.gil: Universal Image Library
    • CIMG: Small open-source C + + toolkit for image processing
    • Cximage: For loading, saving, displaying and converting the image processing and conversion library, the image formats that can be processed include BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, j2k.
    • Freeimage: Open Source Library that supports the common image formats and other formats required for multimedia applications today.
    • Gdcm:grassroots DICOM Library
    • ITK: A cross-platform open source image analysis System
    • C + + interface for Magick++:imagemagick programs
    • C + + interface for Magickwnd:imagemagick programs
    • OpenCV: Open source Computer Vision Class Library
    • TESSERACT-OCR:OCR engine
    • Vigra: General C + + Computer Vision library for image analysis
    • VTK: Open source Free software system for 3D computer graphics, image processing and visualization.

    • Gettext:gnu ' GetText '
    • IBM ICU: Provides Unicode and globalization-supported C, C + +, and Java libraries
    • Libiconv: Encoding conversion library for different character encodings

    • Jason Parsing generator for frozen:c/c++
    • Jansson: C-Language library for encoding and decoding and processing Jason data
    • Build and iterate Bson data in jbson:c++14, and libraries for JSON documents
    • Jeayeson: A very robust C + + JSON library that contains only header files
    • json++: C + + JSON parser
    • Json-parser: JSON parser written in portable ANSI C with very little memory
    • Json11: A mini-c++11 JSON library
    • Jute: A very simple C + + JSON parser
    • JSON parsing and print libraries in the Ibjson:c language are easy to integrate with any model.
    • Libjson: A lightweight JSON library
    • JSON parsing serialization in Picojson:c++, containing only header files
    • Qt-json: A simple class for parsing between JSON data and qvariant hierarchies
    • Qjson: Mapping JSON data to a QT-based library of Qvariant objects
    • RapidJSON: Fast JSON parsing generator for C + +, with two flavors of sax and Dom APIs
    • Fast Stream JSON parsing library in YAJL:C language

    • Boost.Log: Design is very modular and scalable
    • The Easyloggingpp:c++ log library contains only a single header file.
    • Log4cpp: A series of C + + class libraries, flexible add log to file, System log, IDSA and other places.
    • Templog: Lightweight C + + library, you can add logs to your C + + application

Machine learning
    • Caffe: A fast neural network framework
    • CCV: A modern computer vision library with C language as its core
    • Mlpack: Extensible C + + machine learning Library
    • OpenCV: Open Source computer Vision Library
    • Recommender: The C language library for product recommendations/recommendations using collaborative filtering.
    • Shogun:shogun Machine learning Tools
    • SOFIA-ML: Fast incremental algorithm suite for machine learning

    • Armadillo: A high-quality C + + linear algebra library with a good balance of speed and ease of use. The syntax is similar to MATLAB
    • Blaze: High-performance C + + math library for dense and sparse algorithms.
    • Ceres-solver: C + + library from Google, used to model and solve large complex nonlinear least squares problems.
    • Cgal: Efficient, reliable collection of collection algorithms
    • CML: Free C + + math library for games and graphics
    • Eigen: Advanced C + + Template header file library, including linear algebra, matrices, vector manipulation, numerical resolution and other related algorithms.
    • GMTL: The mathematical Graphics Template Library is a broad set of tools for implementing basic graphics.
    • GMP: Used for high-precision computing of A/C + + library, processing signed integers, rational numbers and floating-point numbers.

    • GStreamer: Building a library of media processing component graphics
    • LIVE555 Streaming Media: Multimedia streaming library using open standard protocol (RTP/RTCP, RTSP, SIP)
    • LIBVLC:LIBVLC (VLC SDK) Media framework
    • Qtav: A multimedia playback framework based on QT and ffmpeg that can help you easily write a player
    • SDL: Simple, direct-control media layer
    • SFML: Fast, simple multimedia library

    • Ace:c++ Object-oriented network into toolkit
    • Boost.asio: Cross-platform C + + library for network and bottom-level I/O programming
    • Casablanca:c++ REST SDK
    • Cpp-netlib: A collection of open source libraries for advanced network programming
    • Asynchronous networks for Dyad.c:c languages
    • Libcurl: Multi-protocol File transfer Library
    • Mongoose: A very lightweight web server
    • Muduo: C + + non-blocking network library for Linux multi-threaded servers
    • Net_skeleton:c/c++ TCP client/server library
    • NOPE.C: A C-based, ultra-lightweight software platform for scalable server-side and network applications. For C programmers, you can consider node. js
    • The Onion:c language HTTP Server library is designed to be lightweight and easy to use.
    • POCO: A C + + class library for building networks and Internet-based applications that can run on desktops, servers, mobile and embedded systems.
    • Raknet: A cross-platform, open-source C + + network engine for game developers.
    • Tuf o: Asynchronous Web framework built on C + + for QT.
    • websocket++: WebSocket client/server library based on C++/boost Aiso
    • ZeroMQ: High-speed, modular asynchronous communication library


Dynamics simulation Engine

    • Box2d:2d's game physics engine.
    • Bullet:3d's game physics engine.
    • Chipmunk: Fast, lightweight 2D game Physics Library
    • Liquidfun:2d's game physics engine
    • ODE: Open Dynamics Engine-open source, high performance library, simulating rigid body dynamics.
    • Ofxbox2d:box2d Open source Framework wrapper.
    • Simbody: A high-performance C + + multibody Dynamics/physics library that simulates joint biomechanics and mechanical systems like vehicles, robots and human bones.

Robot Science
    • MOOS-IVP: A set of open-source C + + modules that provide autonomy for robotic platforms, especially autonomous marine vehicles.
    • MRPT: Mobile Robot Programming Toolkit
    • PCL: Point Cloud Library is a standalone, large-scale open project for 2d/3d image and point cloud processing.
    • Robotics Library (RL): a standalone C + + library that includes robot dynamics, motion planning and control.
    • Robwork: A set of C + + libraries for simulation and control of robotic systems.
    • ROS: A robotic operating system that provides libraries and tools to help software developers create robotic applications.

Scientific calculations
    • FFTW: A C language library that calculates DFT using one-dimensional or multidimensional calculations.
    • GSL:GNU Science Library.

    • Chaiscript: An easy-to-use embedded scripting language for C + +.
    • Lua: A small, fast scripting engine for configuration files and basic application scripting.
    • Luacxx: C + + API for creating LUA bindings
    • SWIG: a wrapper/Interface builder that allows you to link your C + + code to JAVASCRIPT,PERL,PHP,PYTHON,TCL and Ruby
    • V7: embedded JavaScript engine.
    • V8: Google's fast JavaScript engine can be embedded in any C + + application.

Serialization of
    • Cap ' n Proto: Fast data Interchange Format and RPC system.
    • CEREAL:C++11 Serialization Library
    • Flatbuffers: Memory-efficient Serialization library
    • Messagepack:c/c++ 's efficient binary serialization library, such as JSON
    • PROTOBUF: Protocol buffering, Google's data Interchange format.
    • PROTOBUF-C: Implementation of protocol Buffering for C language
    • Simplebinaryencoding: Encoding and decoding of application information in binary format for low-latency applications.
    • Thrift: Efficient cross-language ipc/rpc for c++,java,python,php,c# and many other languages, originally developed by Twitter.

    • LIBVPX:VP8/VP9 encoding and decoding SDK
    • FFmpeg: A complete, cross-platform solution for recording, converting video and audio streams.
    • LIBDE265: The implementation of an open h.265 video codec.
    • OpenH264: Open source h.364 codec.
    • Theora: Free open source video compression format.

Virtual machines
    • Interesting VMs in Carpvm:c, let's take a look at this.
    • Micropython: Designed to realize python3.x on single chip microcomputer
    • TINYVM: A small, fast, lightweight virtual machine written in pure ANSI C.

Web application Framework
    • Civetweb: Provides an easy-to-use, powerful, C + + embedded Web server with optional CGI,SSL and LUA support.
    • CPPCMS: Free high-performance Web development framework (not CMS).
    • Crow: A C + + mini-Web framework (inspired by Python Flask)
    • Kore: An ultra-fast and flexible Web server/framework for Web applications developed using the C language.
    • Libonion: A lightweight library that helps you create a Web server using the C programming language.
    • Qdjango: The QT Library-based web framework, written in C + +, tries to emulate the Django API, so this name is used.
    • Wt: Developing a C + + library for Web applications.


XML is a garbage, XML parsing is annoying, it is a disaster for the computer. There is no reason for such a bad thing to exist at all. -linus Torvalds

    • EXPAT: XML parsing library written in C language
    • Libxml2:gnome XML C Parser and Toolkit
    • libxml++: XML parser for C + +
    • Pugixml: A lightweight, simple and fast XML parser for C + + that supports XPath.
    • Rapidxml: Try to create the fastest XML parser, while maintaining ease of use, portability, and reasonable compatibility.
    • TinyXML: A simple, small c++xml parser that can be easily integrated into other projects.
    • TinyXML2: A simple and fast C++CML parser that can be easily integrated into other projects.
    • Tinyxml++:tinyxml is a brand new interface that uses many of the many advantages of C + +, templates, exceptions and better exception handling.
    • Xerces-c++: XML validation parser written with a subset of portable C + +.

Multi-item Mixed

Some useful libraries or tools, but not suitable for the above categories, or not yet categorized.

    • Small, secure and fast format library for C + + format:c++
    • Casacore: A series of C + + core libraries derived from aips++
    • Cxx-prettyprint: Print library for C + + containers
    • Dynapdf: Easy-to-use PDF generation Library
    • Gcc-poison: A simple header file that helps developers to disallow unsafe C + + functions in an application.
    • Googlemock: Writing and using libraries for C + + impersonation classes
    • HTTP request/Response resolver for HTTP Parser:c
    • Libcpuid: Small C library for x86 CPU detection box feature extraction
    • Libevil: License Manager
    • LIBUSB: Universal USB library that allows mobile access to USB devices
    • PCRE: Regular expression C library, inspired by the functionality of the Perl Express expression.
    • Inter-process communication framework for Remote call framework:c++.
    • Scintilla: Open Source code-editing controls
    • Serial Communication library:c++ Language programming cross-platform, serial port library.
    • Sds:c's simple dynamic string library
    • SLDR: Ultra-Lightweight DNS resolver
    • SLRE: Ultra-lightweight regular expression library
    • Stage: Mobile robot simulator
    • Vartypes:c++/qt4 feature-rich, object-oriented management variable framework.
    • Zbar: ' Barcode scanner ' library, you can scan photos, pictures and barcodes in the video stream and return the results.
    • Php-cpp: Using C + + to build a library of PHP extensions
    • Another string library of Better String:c, which is richer, but has no buffer overflow problem, also contains a C + + wrapper.


Software for creating a development environment


C + + Compiler list

    • Clang: Developed by Apple Inc.
    • Gcc:gnu Compiler Collection
    • Intel C + + Compiler: Developed by Intel Corporation
    • LLVM: A collection of modular and reusable compilers and toolchain technologies
    • Microsoft Visual C + +: MSVC, developed by Microsoft Corporation
    • Open watcom:watcom,c,c++ and Fortran cross compilers and tools
    • TCC: Lightweight C-language compiler

Online compiler

On-line compiler list for C + +

    • Codepad: Online compiler/interpreter, a simple collaboration tool
    • Codetwist: A simple online compiler/interpreter that you can paste in c,c++ or Java code, execute online and view the results
    • Coliru: Online compiler/shell, support various C + + compilers
    • Compiler Explorer: Interactive compiler for assembly output
    • Compiling and executing C + + programs online on Compileonline:linux
    • Ideone: An online compiler and debugging tool that allows you to compile and execute your source code online, supporting more than 60 programming languages.


List of C + + debuggers

    • Comparison of Debuggers: Debugger list from Wikipedia
    • GDB:GNU Debugger
    • Valgrind: Memory debugging, memory leak detection, performance analysis tools.

Integrated development Environment (IDE)

A list of integrated development environments for C + +

    • Appcode: Building an integrated development environment for Objective-c,c,c++,java and Java development on the JetBrains ' IntelliJ idea Platform
    • Clion: Integrated development environment for cross-platform C/D + + from JetBrains
    • Code::Blocks: Free c,c++ and FORTRAN integrated development environment
    • CodeLite: Another cross-platform, free, C + + integrated development environment
    • Dev-c++: Portable C/C++/C++11 integrated development environment
    • Eclipse CDT: Full-featured C and C + + integrated development environment based on the Eclipse platform
    • Geany: A lightweight, fast, cross-platform, integrated development environment.
    • IBM VisualAge: Home computer integrated development environment from IBM.
    • Irony-mode: A/C + + micro-mode for Emacs driven by Libclang
    • KDevelop: Free open source integrated development environment
    • Microsoft Visual Studio: An integrated development environment from Microsoft
    • NetBeans: An integrated development environment primarily for Java development, as well as other languages, especially php,c/c++ and HTML5.
    • QT Creator: A cross-platform C++,javascript and QML integrated development environment, also part of the QT SDK.
    • Rtags:c/c++ Client server index for integration with clang-based Emacs
    • Xcode: Developed by Apple Inc.
    • Youcompleteme: An engine for vim that quickly blurs a search and makes code completion based on the code you're knocking on.

Build the System
    • Bear: Tool for generating a compiled database for the Clang tool
    • Biicode: Simple file-based dependency manager.
    • CMake: Free, cross-platform, open source software is used to manage the process of building software using an independent compilation method.
    • CPM: C + + Package Manager based on CMake and Git
    • Fastbuild: High-performance, open-source build system that supports highly scalable compilation, buffering, and network distribution.
    • Ninja: A small build system focused on speed
    • SCons: Software build tool configured with Python Scipt
    • Tundra: High-performance code-building systems, even for very large software projects, provide the best incremental build times.
    • Tup: File-based build system for background monitoring of changing files.

Static code Analysis

List of code analysis tools to improve quality and reduce defects

    • Cppcheck: Static C + + code analysis tool
    • Include-what-you-use: Tools that use clang for code analysis can include in C and C + + files.
    • Oclint: Static source code analysis tool for c,c++ and objective-c to improve quality and reduce defects.
    • Clang Static Analyzer: Source Code analysis tool for finding bugs in c,c++ and objective-c programs
    • List of tools for static code analysis: A list of static Codes Analyzer tools from Wikipedia

C-Language open source project worth learning

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.