Turn: the C/C ++ framework and library that are worth recommending (really powerful), and the recommended framework
Directory (?) [+]A learning C language open-source project-1. 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.
Http://home.tiscali.cz /~ Cz210552/webbench.html
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.
Download link: http://sourceforge.net/projects/tinyhttpd/
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.
Project home: http://sourceforge.net/projects/cjson/
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.
- 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.
Download link: http://code.google.com/p/cmockery/downloads/list
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.
Download link: http://software.schmorp.de/pkg/libev.html
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.
: Http://www.sqlite.org /.
-9. 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.
: Http://minnie.tuhs.org/cgi-bin/utree.pl? File = V6
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.
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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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 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.
- 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.
- 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