C/C ++ framework and library learning recommendation, framework

Source: Internet
Author: User
Tags imagemagick xml parser free ssl

C/C ++ framework and library learning recommendation, framework

C language open-source projects worth learning


Webbench is a simple website stress testing tool used in linux. It uses fork () to simulate multiple clients simultaneously accessing our set URL and test the performance of the website under pressure. It can simulate up to 30 thousand concurrent connections to test the load capacity of the website. Webbench is written in C language. The code is too concise and the source code is less than 600 lines.


Tinyhttpd is a lightweight Http Server. It is developed in C language and has only 502 lines of code (including comments). With a simple Client, you can read this code to understand the nature of an Http Server.


CJSON is a JSON decoder in C language. It is very lightweight and has only over 500 lines of C files, and the speed is also ideal.

CJSON also has several weaknesses. Although its functions are not very powerful, cJSON's slimming board and speed are the most commendable. Its code is well maintained and its structure is easy to understand. It can be learned as a very good C Language Project.


Cmockery is a lightweight framework released by google for Unit C testing. It is very small and has no dependency on other open-source packages, and has little intrusion to the tested code. The number of lines in the source code of cmockery is less than 3 K. You can read the source code of will_return and mock at a glance.

Main features:

Free and open-source. google provides technical support;

A lightweight framework makes testing faster and easier;

Avoid using complex compiler features. It is compatible with earlier compilers;

It is not mandatory that the code to be tested must rely on the C99 standard. This feature is useful for the development of many embedded systems.


Libev is an open-source event-driven Library Based on the infrastructure provided by epoll, kqueue, and other operating systems. It is famous for its efficiency. It can unify IO events, timers, and signals and put them under the framework of event processing. Based on the Reactor mode, it is highly efficient and the code is streamlined (more than 4.15 lines in version 8000). It is a good resource for learning event-driven programming.


Memcached is a high-performance distributed memory object Cache System for dynamic Web applications to reduce database load. It caches data and objects in the memory to reduce the number of times the database is read, so as to provide dynamic database-driven website speed. Memcached is based on a hashmap that stores key/value pairs. The amount of Memcached-1.4.7 code is acceptable, only about 10 k lines.


Lua is great. Lua was invented by Brazilian people. I am not happy with it, but it is not blushing.

What blushes me is the Lua source code, 100% ansi c, which is not mixed at all. It can be easily compiled on any platform that supports the ansi c compiler. I have tried it. It's really nonsense. The number of Lua codes is small enough, and 5.1.4 only contains rows. It is estimated that the number of blank lines and comments can reach rows.


SQLite is an open-source embedded Relational Database Engine for SQL database with self-contained, zero configuration, and transaction support. It is highly portable, easy to use, compact, efficient, and reliable. Small enough, roughly 30 thousand lines of C code, 250 K.


The kernel source code of UNIX V6 contains about 10 thousand lines including the device driver. This quantity of source code can be fully understood by beginners. One argument is that the maximum number of lines of code that a person can understand is 10 thousand. The number of kernel source codes of UNIX V6 is within this range. Do you have the idea of "I can learn it if there are only 10 thousand rows?

On the other hand, the latest operating system, such as the latest Linux kernel source code, is said to exceed 10 million lines. Even if you are not a beginner, it is basically impossible to fully understand all the code.


NetBSD is a free and highly portable UNIX-like operating system. It is the most portable operating system on many platforms, from 64-bit alpha servers to handheld devices and embedded devices. The NetBSD program's slogan is "Of course it runs NetBSD ". It has simple design, code specifications, and many advanced features, making it widely acclaimed in the industry and academia. Thanks to its concise design and advanced features, it has excellent performance in terms of production and research, and it also has complete source code supported by users. Many programs can be easily obtained through the NetBSD Packages Collection.

C ++ resource Overview

A summary list of C ++ frameworks, libraries, and resources, including standard libraries, Web application frameworks, artificial intelligence, databases, image processing, machine learning, logs, and code analysis.

Standard Library

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

C ++ Standard Library: a collection of classes and functions. It is written in the core language and is part of the C ++ ISO Standard.

Standard Template Library: Standard Template Library

C posix library: C Standard library Specification for POSIX systems

Iso c ++ Standards Committee: C ++ Standards Committee


C ++ general framework and Library

Apache C ++ Standard Library: a collection of algorithms, containers, iterators, and other basic components.

ASL: Adobe source code library provides peer review and portable C ++ source code library.

Boost: a collection of a large number of General C ++ libraries.

BDE: From the development environment of the Bloomberg information laboratory.

Cinder: provides an open-source development community with professional quality and creative code.

Cxxomfort: lightweight, contains only the header file library, and migrates some new features of C ++ 11 to C ++ 03.

Dlib: a universal 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: an all-encompassing C ++ class library used to develop cross-platform software

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

LibSourcey: C ++ 11 evented IO for real-time video streams and high-performance network applications

LibU: multi-platform tool library written in C Language

Loki: the design of the C ++ library, including the implementation of common design patterns and idioms.

MiLi: A small C ++ library containing only header files

OpenFrameworks: C ++ toolkit for creative coding.

Qt: cross-platform application and user interface framework

Reason: a cross-platform framework that allows developers to use Java,. Net, and Python more easily. It also meets their requirements for C ++ performance and advantages.

ROOT: A series of object-oriented frameworks with all functions that can efficiently process and analyze a large amount of data for European Atomic Energy research institutions.

STLport: A representative version of STL.

STXXL: a standard template library for additional large datasets.

Ultimate ++: C ++ cross-platform Rapid Application Development Framework

Windows Template Library: C ++ Library used to develop Windows applications and UI Components

Yomm11: Open multi-methods for C ++ 11.

Artificial Intelligence

Btsk: Game Behavior tree starter Tool

Evolving Objects: A template-based, ansi c ++ evolutionary computing library that helps you quickly compile your own random optimization algorithms.

Neu: C ++ 11 framework, a programming language set, used to create a multi-purpose software system for AI applications.

Asynchronous event Loop

Boost. Asio: a cross-platform C ++ library for network and underlying I/O programming.

Libev: it has complete functions, high-performance time loops, and slightly imitates libevent. However, it does not have the same limitations as libevent, but also fixes some of its bugs.

Libevent: Event Notification Library

Libuv: cross-platform asynchronous I/O.


Audio, sound, music, digital music library

FMOD: An easy-to-use cross-platform audio engine and game creation tool for 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 generic audio codecs

Speex: Free codecs, discarded by Opus

Tonic: C ++ easy-to-use and efficient audio Synthesis

Vorbis: Ogg Vorbis is a fully open, proprietary, royalty-free universal compressed audio format.


Biological Information, genomics and Biotechnology

Libsequence: a c ++ library used to represent and analyze population genetic data.

SeqAn: algorithms and data structures that focus on biological data sequence analysis.

Vcflib: C ++ library used to parse and process VCF files

Wham: Apply the association test directly to the genetic structure variation in the BAM file.


Compression and Archiving

Bzip2: a completely free, free patent and high-quality data compression

Doboz: compression library that can be quickly decompressed

PhysicsFS: a library that provides abstract access to various archives. It is mainly used for video games and is partly inspired by the file subsystem of Quake3.

KArchive: A library used to create, read, and Write File files (such as zip and tar). It uses a series of sub-classes of QIODevice and gzip format to provide transparent data compression and decompression.

LZ4: extremely fast compression algorithm

LZHAM: lossless compression database. The compression ratio is close to LZMA, but the decompression speed is much faster.

LZMA: Default and common compression methods in 7z format.

LZMAT: and its rapid real-time lossless data compression library

Miniz: A single C source file, compress/expand the compression library, and uses zlib compatible APIs, ZIP Archive read/write, and PNG write methods.

Minizip: The latest bug fix in Zlib. It supports PKWARE disk overlay, AES encryption, and IO buffer.

Snappy: Fast compression and decompression

ZLib: extremely compact data stream compression library

ZZIPlib: Provides the read permission for ZIP archiving.


Concurrent execution and Multithreading

Boost. Compute: C ++ GPU computing library for OpenCL

Bolt: GPU-optimized C ++ Template Library

C ++ React: reactive programming library for C ++ 11

Intel TBB: Intel thread component

Libcl7d: GPU-based OCs Based on OpenCL

OpenCL: open standard for parallel programming heterogeneous systems

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 scale

VexCL: The C ++ vector expression template library for OpenCL/CUDA.


C ++ B-tree: The template library of the command memory container Based on the B-tree data structure

Hashmaps: Implementation of the open addressing Hash Table Algorithm in C ++


Bcrypt: a cross-platform file encryption tool that migrates encrypted files to all supported operating systems and processors.


Botan: C ++ encrypted Library

Crypto ++: a free C ++ library for encryption Solutions

GnuPG: complete implementation of OpenPGP standards

GnuTLS: Implements secure communication libraries for SSL, TLS, and DTLS protocols.



LibreSSL: a free SSL/TLS protocol, which is a branch of OpenSSL 2014.

LibTomCrypt: a comprehensive, modular, and portable encryption tool

Libsodium: an encrypted Library Based on NaCI.

Underlying encryption library of Nettle

OpenSSL: A Powerful, commercial, and fully functional open-source encryption library.

Tiny AES128 in C: a compact and portable Encryption Algorithm for AES128ESB implemented by C


Databases, SQL servers, ODBC drivers and tools

Hiberlite: used for C ++ object link ing of Sqlite3

Hiredis: A simple C-client library for Redis Databases

LevelDB: Quick key-value Repository

LMDB: embedded key-value storage that meets the four basic elements of the database

MySQL ++: C ++ package that encapsulates MySql's C API

RocksDB: quick storage of embedded key values from Facebook

SQLite: a fully-embedded and functional relational database, which is only several hundred KB, can be correctly included in your project.


Debugging library, memory and resource leakage detection, Unit Testing

Boost. Test: Boost Test Library

Catch: a very fashionable, C ++ native framework that only contains header files for unit testing, test-driven development, and behavior-driven development.

CppUnit: C ++ testing framework transplanted from JUnit

CTest: CMake test driver

Googletest: Google C ++ testing framework

Ig-debugheap: multi-platform debugging heap used to track Memory Errors

Libtap: Write and test in C Language

MemTrack-memory allocation for C ++ tracking

Microprofile-cross-platform network attempt Analyzer

MinUnit: A mini unit test framework written in C. Only two macros are used.

Remotery: A single C file analyzer for web views

UnitTest ++: lightweight C ++ unit test framework

Game Engine

Cocos2d-x: a cross-platform framework for building 2D games, interactive books, demos and other graphics applications.

Grit: a community project used to build a free game engine for an open world 3D game.

Irrlicht: open-source, high-performance real-time # D engine written in C ++

Polycode: C ++ implements an open-source framework for creating a game (bound to Lua ).

Graphical user interface

CEGUI: flexible cross-platform GUI Library

FLTK: a fast and lightweight cross-platform C ++ GUI toolkit.

GTK +: a cross-platform toolkit used to create a graphical user interface

Gtkmm: the official C ++ interface for GTK +, a popular GUI library.

Imgui: instant mode graphical user interface with minimum dependency

LibRocket: libRocket is a C ++ HTML/CSS game interface middleware.

MyGUI: fast, flexible, and simple GUI

Ncurses: End User Interface

QCustomPlot: No more dependency-related Qt drawing controls

Qwt: Qt controls for users and technical applications

QwtPlot3D: A rich C ++ programming library based on Qt/OpenGL, essentially providing a group of 3D controls

OtterUI: OtterUI is a user interface development solution for embedded systems and interactive entertainment software.

PDCurses public graphics function libraries that contain source code and pre-compiled Libraries

WxWidgets C ++ library allows developers to use a code library to create applications for widows, Mac OS X, Linux, and other platforms


Bgfx: cross-platform rendering library

Cairo: 2D graphics library supporting multiple output devices

Horde3D a small 3D rendering and animation engine

Magnum C ++ 11 and OpenGL 2D/3D graphics Engines

Ogre 3D is a real-time and flexible 3D rendering engine (not a game engine) designed in C ++)

OpenSceneGraph has a high-performance open source 3D graphics Toolkit

Panda3D is a framework used for 3D rendering and game development. It is written in Python and C ++.

Skia is a complete 2D graphics library for drawing text, graphics, and images.

Urho3d cross-platform rendering and game engine.

Image Processing

Boost. GIL: universal image library

CImg: small open-source C ++ toolkit for image processing

CxImage: The image processing and conversion library for loading, saving, displaying, and converting. The formats that can be processed include BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K.

FreeImage: an open-source library that supports common image formats and other formats required by multimedia applications.

GDCM: Grassroots DICOM Library

ITK: a cross-platform open-source image analysis system

Magick ++: C ++ interface of the ImageMagick Program

MagickWnd: C ++ interface of the ImageMagick Program

OpenCV: open-source computer vision class library

Tesseract-ocr: OCR engine

VIGRA: common C ++ Computer Vision library for Image Analysis

VTK: an open-source Free Software System for 3D computer graphics, image processing, and visualization.


Gettext: GNU 'gettext'

Ibm icu: Provides Unicode and global support for C, C ++, and Java Libraries

Libiconv: used for encoding and conversion between different character encodings


Frozen: Jason parsing Generator for C/C ++

Jansson: C language library for Codec and Jason Data Processing

Jbson: Build and iterate BSON data in C ++ 14, and the Json document library

JeayeSON: A sound C ++ JSON library that only contains header files

JSON ++: C ++ JSON parser

Json-parser: a json parser compiled with portable ansi c, which occupies a very small amount of memory

Json11: a Mini C ++ 11 JSON Library

Jute: a very simple C ++ JSON parser

Ibjson: JSON parsing and printing library in C language, which can be easily integrated with any model.

Libjson: lightweight JSON Library

PicoJSON: JSON parsing serialization in C ++, containing only header files

Qt-json: A simple class used for parsing JSON data and QVariant Layers

QJson: maps JSON data to the Qt-based library of the QVariant object.

RapidJSON: a fast JSON parsing Generator for C ++. It contains APIs of the SAX and DOM styles.

YAJL: Quick stream JSON Parsing Library in C Language


Boost. Log: Very modular and scalable

Easyloggingpp: C ++ logstore that only contains a single header file.

Log4cpp: A series of C ++ class libraries that flexibly add logs to files, system logs, 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: modern computer vision library with C language as the core

Mlpack: scalable C ++ Machine Learning Library

OpenCV: open-source computer vision Library

Recommender: C language library for product recommendation/Recommendation using collaborative filtering.

SHOGUN: Shogun machine learning tool

Sofia-ml: A quick incremental algorithm suite for Machine Learning


Armadillo: a high-quality C ++ linear algebra library that balances the speed and ease of use. The syntax is similar to that of MatlAB.

Blaze: a high-performance C ++ Math library for intensive and sparse algorithms.

Ceres-solver: a c ++ library from Google for modeling and solving large-scale complex nonlinear least square problem.

CGal: an efficient and reliable set of Algorithms

NML: Free C ++ Math library for games and graphics

Eigen: Advanced C ++ template header file library, including linear algebra, matrices, vector operations, numerical solutions, and other related algorithms.

GMTL: A mathematical graphics template library is a set of tools for a wide range of basic graphics.

GMP: a high-precision C/C ++ library for processing signed integers, rational numbers, and floating-point numbers.


GStreamer: Build a library of media processing component graphics

LIVE555 Streaming Media: multimedia stream library using the open standard protocol (RTP/RTCP, RTSP, SIP)

LibVLC: libVLC (vlc sdk) media framework

QtAv: a multimedia playback framework based on Qt and FFmpeg, which helps you easily compile a player.

SDL: simple direct control media layer

SFML: fast and simple multi-media library


ACE: C ++ object-oriented network becomes Toolkit

Boost. Asio: cross-platform C ++ library for network and underlying I/O Programming

Casablanca: C ++ REST SDK

Cpp-netlib: an open source library set for Advanced Network Programming

Dyad. c: Asynchronous Network in c Language

Libcurl: Multi-Protocol File Transfer Library

Mongoose: Very lightweight network server

Muduo: C ++ non-blocking network library for Linux multi-threaded servers

Net_skeleton: TCP client/server library of C/C ++

Nope. c: A lightweight Software Platform Based on c language for scalable server and network applications. For C programmers, you can consider node. js

Onion: C Language HTTP server library, which is lightweight and easy to use.

POCO: a c ++ class library used to build networks and Internet-based applications. It can run on desktops, servers, mobile devices, and embedded systems.

RakNet: a cross-platform open-source C ++ network engine provided by game developers.

Tuf o: An asynchronous Web framework built on C ++ on Qt.

WebSocket ++: websocket Client/Server Library Based on C ++/Boost Aiso

ZeroMQ: high-speed, modular asynchronous communication library


Dynamic simulation engine

Box2D: a 2D physical game engine.

Bullet: 3D Game physical engine.

Chipmunk: fast and lightweight physical library for 2D games

LiquidFun: 2D game physical Engine

ODE: open-source dynamic engine, high-performance library, simulation of rigid body dynamics.

OfxBox2d: open-source framework package of Box2D.

Simbody: High-Performance C ++ multi-body dynamics/physical database, simulating joint bioinformatics and mechanical systems like vehicles, robots and human bones.


MOOS-IvP: A group of open-source C ++ modules that provide robot platform autonomy, especially autonomous marine vehicles.

MRPT: Mobile Robot programming Toolkit

PCL: The dot cloud database is an independent and large-scale open project for processing 2D/3D images and point clouds.

Robotics Library (RL): An Independent C ++ Library, including robot dynamics, motion planning, and control.

RobWork: a collection of C ++ databases for simulation and control of robot systems.

ROS: A robot operating system that provides libraries and tools to help software developers create robot applications.

Scientific Computing

FFTW: C language library for one-dimensional or multi-dimensional DFT computing.

GSL: GNU scientific database.


ChaiScript: An easy-to-use embedded scripting language for C ++.

Lua: A small quick Script Engine for configuration files and basic application scripts.

Luacxx: Creates the C ++ 11 API bound to Lua.

SWIG: A package/interface generator that links your C ++ code to JavaScript, Perl, PHP, Python, Tcl and Ruby.

V7: embedded JavaScript Engine.

V8: Google's quick JavaScript engine can be embedded into any C ++ application.


Cap 'n' Proto: fast data exchange format and RPC system.

Cereal: C ++ 11 serialization Library

FlatBuffers: memory-efficient serialization Library

MessagePack: Efficient binary serialization library of C/C ++, such as JSON

Protobuf: Protocol buffer, Google's data exchange format.

Protobuf-c: Protocol buffer implementation in c Language

SimpleBinaryEncoding: used to encode and decode application information in binary format for low-latency applications.

Thrift: efficient cross-language IPC/RPC, used in C ++, Java, Python, PHP, C # and other languages, initially developed by Twitter.


Libvpx: VP8/VP9 encoding and decoding SDK

FFmpeg: a complete, cross-platform solution for recording and converting video and audio streams.

Libde265: Implementation of Open h.265 video codecs.

OpenH264: open-source H.364 codecs.

Theora: a free and open-source video compression format.

Virtual Machine

CarpVM: Interesting VM in C. Let's take a look at this.

MicroPython: it is designed to implement Python3.x on a single-chip microcomputer.

TinyVM: small, fast, and lightweight virtual machines written in pure ansi c.

Web Application Framework

Civetweb: provides easy-to-use, powerful, C/C ++ embedded Web servers with optional CGI, SSL, and Lua support.

CppCMS: a free and high-performance Web development framework (not CMS ).

Crow: a c ++ micro-web Framework (inspired by Python Flask)

Kore: an ultra-fast and flexible web server/framework developed in C language for web applications.

LibOnion: a lightweight library that helps you create web servers using the C programming language.

QDjango: The web framework written in C ++ Based on the Qt library tries to follow the Django API.

Wt: C ++ library for developing Web applications.


XML is a waste, and xml parsing is annoying. It is also a disaster for computers. There is no reason for such a bad thing to exist. -Linus Torvalds

Expat: xml parsing library written in C Language

Libxml2: Gnome xml C parser and toolkit

Xml Parser for libxml ++: C ++

PugiXML: a lightweight and fast XML Parser for C ++ that supports XPath.

RapidXml: attempts to create the fastest XML Parser while maintaining ease of use, portability, and reasonable W3C compatibility.

TinyXML: A simple small C ++ XML parser that can be easily integrated into other projects.

TinyXML2: a simple and fast C ++ CRF parser that can be easily integrated into other projects.

TinyXML ++: A brand new interface of TinyXML, using many advantages of C ++, templates, exceptions and better exception handling.

Xerces-C ++: an XML verification parser written with a portable subset of C ++.


Some useful libraries or tools, but not suitable for classification, or no classification.

C ++ Format: small, secure, and quick Format library for C ++

Casacore: A series of C ++ core libraries derived from aips ++

Cxx-prettyprint: used to print the library of the C ++ container

DynaPDF: easy-to-use PDF Library

Gcc-poison: helps developers disable simple header files of insecure C/C ++ functions in applications.

Googlemock: compile and use a C ++ simulation class library

HTTP Parser: C's http Request/response Parser

Libcpuid: A small C library for x86 CPU detection box Feature Extraction

Libedevil: License Manager

Libusb: allows mobile access to the universal USB library of the USB device

PCRE: Regular Expression C library, inspired by the Regular Expression Function in Perl.

Remote Call Framework: the inter-process communication Framework of C ++.

Scintilla: an open-source code editing Control

Serial Communication Library: a cross-platform and Serial Library written in C ++.

Simple Dynamic string library of SDS: C

SLDR: a lightweight DNS parser

SLRE: Super-lightweight Regular Expression Library

Stage: Mobile Robot Simulator

VarTypes: rich functions of C ++/Qt4 and an object-oriented variable management framework.

ZBar: 'bar code scanner 'library, which can scan the bar codes in photos, images, and video streams and return results.

CppVerbalExpressions: An easy-to-use C ++ Regular Expression

QtVerbalExpressions: Qt Library Based on the C ++ VerbalExpressions Library

PHP-CPP: Using C ++ to build PHP extended Libraries

Better String: Another String library of C with more functions, but no buffer overflow issues, it also contains a C ++ package.


Software used to create a development environment


C/C ++ compiler list

Clang: developed by Apple

GCC: GNU Compiler set

Intel C ++ Compiler: Developed by Intel

LLVM: a set of modular and reusable compiler and toolchain Technologies

Microsoft Visual C ++: MSVC, developed by Microsoft

Open WatCom: Watcom, C, C ++, and Fortran cross compilers and tools

TCC: lightweight C language compiler

Online Compiler

Online C/C ++ compiler list

Codepad: Online Compiler/Interpreter, a simple collaboration tool

CodeTwist: a simple online Compiler/Interpreter. You can paste C, C ++, or Java code to execute it online and view the result.

Coliru: Online Compiler/shell, supporting various C ++ Compilers

Compiler Explorer: Interactive Compiler, which can be compiled and output.

CompileOnline: Compile and execute C ++ programs online on Linux

Ideone: an online compiler and debugging tool that allows you to compile and execute source code online. It supports over 60 programming languages.


C/C ++ debugger list

Comparison of debuggers: List of debuggers from Wikipedia

GDB: GNU Debugger

Valgrind: Memory debugging, memory leak detection, and performance analysis tools.

Integrated Development Environment (IDE)

List of C/C ++ Integrated Development Environments

AppCode: build an integrated development environment for Objective-C, C, C ++, Java and Java Development on the IntelliJ IDEA platform with JetBrains

CLion: a cross-platform C/C ++ integrated development environment from JetBrains

Code: Blocks: a free integrated development environment for C, C ++, and Fortran

CodeLite: another cross-platform free C/C ++ integrated development environment

Dev-C ++: Portable C/C ++ 11 integrated development environment

Eclipse CDT: fully functional C and C ++ integrated development environment based on the Eclipse Platform

Geany: lightweight, fast, cross-platform integrated development environment.

IBM VisualAge: an integrated development environment for home computers from IBM.

Irony-mode: C/C ++ micro-mode driven by libclang for Emacs

KDevelop: free open-source integrated development environment

Microsoft Visual Studio: an integrated development environment from Microsoft

NetBeans: an integrated development environment mainly used for Java Development. It also supports other languages, especially PHP, C/C ++, and HTML5.

Qt Creator: a cross-platform integrated development environment for C ++, Javascript, and QML, which is also part of the Qt SDK.

Rtags: C/C ++ Client Server Index, used for integration with clang-based emacs

Xcode: developed by Apple

YouCompleteMe: an engine used for Vim to quickly perform fuzzy search based on the code you have typed and complete the code.

Build System

Bear: used to generate database compilation tools for clang tools

Biicode: simple file-based dependency manager.

CMake: a cross-platform free 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: a high-performance, open-source build system that supports highly scalable compilation, buffering, and network distribution.

Ninja: a speed-focused small build system

Scons: software build tool configured with Python scipt

Tundra: a high-performance code build system that provides the best number of incremental builds even for very large software projects.

Tup: a file-based build system that monitors changed files in the background.

Static code analysis

List of code analysis tools to improve quality and reduce Defects

Cppcheck: static C/C ++ code analysis tool

Include-what-you-use: a tool that uses clang for code analysis. you can # include the tool in the C and C ++ files.

OCLint: a 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 code analysis tools from Wikipedia

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.