C/C ++ framework and library learning recommendation, framework
C language open-source projects worth learning
Webbench
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
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
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
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
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
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
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
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.
UNIX v6
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
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
Framework
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
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.
Ecology
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
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.
Concurrency
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.
Container
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 ++
Cryptography
Bcrypt: a cross-platform file encryption tool that migrates encrypted files to all supported operating systems and processors.
BeeCrypt:
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.
Libgcrypt
Libmcrypt
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
Database
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
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
Graphics
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.
Internationalization
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
Jason
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
Logs
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
Mathematics
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.
Multimedia
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
Network
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
Physics
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.
Robotics
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.
Script
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.
Serialization
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.
Video
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
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 ++.
Multi-hybrid
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
Software used to create a development environment
Compiler
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.
Debugger
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