Recommended C/+ + frameworks and libraries

Source: Internet
Author: User
Tags compact gettext gtk imagemagick openssl posix xml parser free ssl






Http://coolshell.info/blog/2014/12/c-open-project.html










C-Language open source project worth learning



1.Webbench






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






Download Link: https://github.com/LippiOuYang/WebBenchl






2.Tinyhttpd






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






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






3.cJSON






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






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






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






4.CMockery






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






Main Features:




Free and open source, Google provides technical support;

The lightweight framework makes testing faster and easier;

Avoid the use of complex compiler features, the old version of the compiler, the compatibility is good;

It is not mandatory to require the code to be tested to rely on the C99 standard, which is useful for the development of many embedded systems



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






5.Libev






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






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






6.Memcached






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






: http://memcached.org/






7.Lua






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






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






: http://www.lua.org/






8.SQLite






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






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






9.UNIX V6






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






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






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






10.NETBSD






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






: http://www.netbsd.org/




C + + Resource Encyclopedia



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










Standard library



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




C + + Standard Library: A collection of classes and functions, written in the core language, is also part of C++iso's own standards.

Standard Template Library: Templates

C Standard library Specification for POSIX Library:posix Systems

ISO C + + standards committee:c++ Standard Committee







Framework



C + + common frameworks and libraries




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

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

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

BDE: The development environment from the Bloomberg Information Lab.

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

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

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

Eastl:ea-stl Public part

Ffead-cpp: Enterprise Application Development Framework

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

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

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

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

Multi-platform Tool library for LIBU:C language writing

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

Mili: Small C + + library with header files only

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

Qt: Cross-platform application and user interface framework

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

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

STLport: A representative version of STL

STXXL: Standard Template Library for additional large datasets.

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

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

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







Artificial intelligence

Btsk: Game Behavior Tree Launcher tool

Evolving Objects: A template-based, ANSI C + + Evolutionary computing library that can help you write your own random optimization algorithm very quickly.

The NEU:C++11 framework, a set of programming languages, is used to create multi-purpose software systems for AI applications.







Asynchronous event Loops

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

Libev: Full-Featured, high-performance time-cycle, slightly emulated libevent, but no longer as limited as libevent, but also fixed some of its bugs.

Libevent: Event Notification Library

LIBUV: Cross-platform asynchronous I/O.







Audio



Audio, sound, music, digital music library




FMOD: Easy-to-use game authoring tool for cross-platform audio engines and audio content.

Maximilian:c++ Audio and music digital signal processing library

OpenAL: Open source Audio Library-cross-platform audio API

Opus: A fully open, royalty-free, highly versatile audio codec

Speex: Free codec for opus abandonment

Tonic:c++ easy-to-use and efficient audio synthesis

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







Ecology



Biological information, genomics and biotechnology




Libsequence: C + + library for representing and analyzing population genetics data.

Seqan: Algorithms and data structures that focus on biological data sequence analysis.

Vcflib: C + + library for parsing and processing VCF files

WHAM: The genetic structure variation that applies the Lenovo test directly to the BAM file.







Compression



Compression and archive libraries




BZIP2: A completely free, free patent and high-quality data compression

Doboz: A compact library that can be decompressed quickly

PHYSICSFS: A library that provides abstract access to a variety of archives, primarily for video games, and is inspired partly by the Quake3 file subsystem.

Karchive: A library for creating, reading, and manipulating file archives (such as zip and tar), which provides transparent compression and decompression of data through a series of subclasses of Qiodevice, using gzip format.

LZ4: A very fast compression algorithm

Lzham: Lossless compression database, compression ratio close to LZMA, but decompression is much faster.

lzma:7z format default and general compression methods.

Lzmat: And its fast real-time lossless data compression Library

Miniz: Single C source file, condensed/expanded compression library, using zlib compatible Api,zip archive read/write, PNG write mode.

Minizip:zlib latest bug fixes, supports PKWare disk spanning, AES encryption and IO buffering.

Snappy: Fast compression and decompression

ZLib: A very compact data stream compression Library

Zziplib: Provides read access to the ZIP archive.







Concurrency of



Concurrent execution and multithreading




Boost.compute: C++gpu Compute Library for OpenCL

Bolt: C + + Template Library optimized for GPU

C++react: A reactive programming library for C++11

Intel Tbb:intel Threading Component Block

LIBCLSPH: OpenCL-based GPU-accelerated SPH Fluid Simulation Library

OpenCL: Open standards for heterogeneous systems with parallel programming

Openmp:openmp API

Thrust: Parallel algorithm library similar to the C + + Standard Template Library

HPX: Universal C + + runtime system for parallel and distributed applications of any size

VEXCL: C + + vector expression Template Library for Opencl/cuda.







Container

C + + B-tree: A template Library for the command memory container based on the B-tree data structure

Implementation of open addressing hash table algorithm in hashmaps:c++







Cryptographic Science

Bcrypt: A cross-platform file encryption tool, encrypted files can be ported to all supported operating systems and processors.

Beecrypt:

Botan:c++ Encryption Library

crypto++: a free C + + library for encryption schemes

Complete implementation of the GNUPG:OPENPGP standard

GNUTLS: Secure Communication Library for SSL,TLS and DTLS protocols

Libgcrypt

Libmcrypt

LIBRESSL: Free SSL/TLS protocol, which belongs to a branch of OpenSSL

Libtomcrypt: A very comprehensive, modular, portable encryption tool

Libsodium: NACI-based encryption library, opinionated, easy to use

Nettle the underlying encryption library

OpenSSL: A powerful, commercial, fully functional, open source encryption library.

Tiny AES128 in C: a small, portable implementation of the AES128ESB encryption algorithm implemented with C







Database



databases, SQL Server, ODBC drivers and tools




Hiberlite: C + + Object-relational mapping for Sqlite3

Hiredis: A very simple C client library for the Redis database

LevelDB: Fast Key-value repository

LMDB: An embedded key-value store that conforms to the four basic elements of a database

mysql++: C + + wrapper that encapsulates the MySQL API

ROCKSDB: Fast storage of embedded key values from Facebook

SQLite: A fully embedded, full-featured relational database with only hundreds of KB that can be properly included in your project.







Debugging



Debug libraries, memory and resource leak detection, unit testing




Boost.Test:Boost Test Library

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

CppUnit: A C + + test framework ported by JUnit

Ctest:cmake test Driver

Googletest: Google C + + testing Framework

IG-DEBUGHEAP: Multi-platform debug heap for tracking memory errors

Libtap: Writing tests in C language

memtrack-for C + + tracking memory allocation

microprofile-Cross-platform Network attempt analyzer

Minunit: Using a C-written mini-unit test framework with only two macros

Remotery: A single C file parser for Web views

unittest++: Lightweight C + + unit Testing Framework







Game engine

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

Grit: Community project for building a free game engine to implement the open world 3D game.

Open source high-performance real-time #d engine written in irrlicht:c++ language

Polycode:c++ implements an open-source framework for creating games (bundled with Lua).







Graphical user interface

Cegui: A flexible cross-platform GUI library

FLTK: Fast, lightweight cross-platform C++gui Toolkit.

GTK +: Cross-platform toolkit for creating a graphical user interface

GTKMM: The official C + + interface for the popular GUI library GTK +.

Imgui: Immediate-mode graphical user interface with minimal dependencies

Librocket:librocket is a C + + Html/css game interface Middleware

Mygui: Fast, flexible, simple GUI

Ncurses: End user Interface

Qcustomplot: QT Drawing controls with no more dependencies

QWT: QT controls for user and technology applications

Qwtplot3d: A feature-rich QT/OPENGL-based C + + programming library that essentially provides a bunch of 3D controls

Otterui:otterui is a user interface development solution for embedded systems and interactive entertainment software

Pdcurses Common graphics function library with source code and precompiled Library

WxWidgets C + + library, which allows developers to create applications for widows, Mac OS X,linux and other platforms using a code base







Graphics

BGFX: Cross-platform rendering library

Cairo: 2D graphics library with support for multiple output devices

Horde3d a small 3D rendering and animation engine

Magnum C++11 and OpenGL 2d/3d graphics engine

Ogre 3D is a scene-oriented, real-time, flexible 3D rendering engine (not a game engine) written in C + +

OpenSceneGraph Open source 3D Graphics toolkit with high performance

PANDA3D is a framework for 3D rendering and game development, written in Python and C + +.

Skia Complete 2D Graphics library for drawing text, graphics, and images

Urho3d a cross-platform rendering and game engine.







Image processing

Boost.gil: Universal Image Library

CIMG: Small open-source C + + toolkit for image processing

Cximage: For loading, saving, displaying and converting the image processing and conversion library, the image formats that can be processed include BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, j2k.

Freeimage: Open Source Library that supports the common image formats and other formats required for multimedia applications today.

Gdcm:grassroots DICOM Library

ITK: A cross-platform open source image analysis System

C + + interface for Magick++:imagemagick programs

C + + interface for Magickwnd:imagemagick programs

OpenCV: Open source Computer Vision Class Library

TESSERACT-OCR:OCR engine

Vigra: General C + + Computer Vision library for image analysis

VTK: Open source Free software system for 3D computer graphics, image processing and visualization.







Internationalization

Gettext:gnu ' GetText '

IBM ICU: Provides Unicode and globalization-supported C, C + +, and Java libraries

Libiconv: Encoding conversion library for different character encodings







Jason

Jason Parsing generator for frozen:c/c++

Jansson: C-Language library for encoding and decoding and processing Jason data

Build and iterate Bson data in jbson:c++14, and libraries for JSON documents

Jeayeson: A very robust C + + JSON library that contains only header files

json++: C + + JSON parser

Json-parser: JSON parser written in portable ANSI C with very little memory

Json11: A mini-c++11 JSON library

Jute: A very simple C + + JSON parser

JSON parsing and print libraries in the Ibjson:c language are easy to integrate with any model.

Libjson: A lightweight JSON library

JSON parsing serialization in Picojson:c++, containing only header files

Qt-json: A simple class for parsing between JSON data and qvariant hierarchies

Qjson: Mapping JSON data to a QT-based library of Qvariant objects

RapidJSON: Fast JSON parsing generator for C + +, with two flavors of sax and Dom APIs

Fast Stream JSON parsing library in YAJL:C language







Log

Boost.Log: Design is very modular and scalable

The Easyloggingpp:c++ log library contains only a single header file.

Log4cpp: A series of C + + class libraries, flexible add log to file, System log, IDSA and other places.

Templog: Lightweight C + + library, you can add logs to your C + + application







Machine learning

Caffe: A fast neural network framework

CCV: A modern computer vision library with C language as its core

Mlpack: Extensible C + + machine learning Library

OpenCV: Open Source computer Vision Library

Recommender: The C language library for product recommendations/recommendations using collaborative filtering.

Shogun:shogun Machine learning Tools

SOFIA-ML: Fast incremental algorithm suite for machine learning







Mathematical

Armadillo: A high-quality C + + linear algebra library with a good balance of speed and ease of use. The syntax is similar to MATLAB

Blaze: High-performance C + + math library for dense and sparse algorithms.

Ceres-solver: C + + library from Google, used to model and solve large complex nonlinear least squares problems.

Cgal: Efficient, reliable collection of collection algorithms

CML: Free C + + math library for games and graphics

Eigen: Advanced C + + Template header file library, including linear algebra, matrices, vector manipulation, numerical resolution and other related algorithms.

GMTL: The mathematical Graphics Template Library is a broad set of tools for implementing basic graphics.

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







Multimedia

GStreamer: Building a library of media processing component graphics

LIVE555 Streaming Media: Multimedia streaming library using open standard protocol (RTP/RTCP, RTSP, SIP)

LIBVLC:LIBVLC (VLC SDK) Media framework

Qtav: A multimedia playback framework based on QT and ffmpeg that can help you easily write a player

SDL: Simple, direct-control media layer

SFML: Fast, simple multimedia library







Internet

Ace:c++ Object-oriented network into toolkit

Boost.asio: Cross-platform C + + library for network and bottom-level I/O programming

Casablanca:c++ REST SDK

Cpp-netlib: A collection of open source libraries for advanced network programming

Asynchronous networks for Dyad.c:c languages

Libcurl: Multi-protocol File transfer Library

Mongoose: A very lightweight web server

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

Net_skeleton:c/c++ TCP client/server library

NOPE.C: A C-based, ultra-lightweight software platform for scalable server-side and network applications. For C programmers, you can consider node. js

The Onion:c language HTTP Server library is designed to be lightweight and easy to use.

POCO: A C + + class library for building networks and Internet-based applications that can run on desktops, servers, mobile and embedded systems.

Raknet: A cross-platform, open-source C + + network engine for game developers.

Tuf o: Asynchronous Web framework built on C + + for QT.

websocket++: WebSocket client/server library based on C++/boost Aiso

ZeroMQ: High-speed, modular asynchronous communication library







Physics



Dynamics simulation Engine




Box2d:2d's game physics engine.

Bullet:3d's game physics engine.

Chipmunk: Fast, lightweight 2D game Physics Library

Liquidfun:2d's game physics engine

ODE: Open Dynamics Engine-open source, high performance library, simulating rigid body dynamics.

Ofxbox2d:box2d Open source Framework wrapper.

Simbody: A high-performance C + + multibody Dynamics/physics library that simulates joint biomechanics and mechanical systems like vehicles, robots and human bones.







Robot Science

MOOS-IVP: A set of open-source C + + modules that provide autonomy for robotic platforms, especially autonomous marine vehicles.

MRPT: Mobile Robot Programming Toolkit

PCL: Point Cloud Library is a standalone, large-scale open project for 2d/3d image and point cloud processing.

Robotics Library (RL): a standalone C + + library that includes robot dynamics, motion planning and control.

Robwork: A set of C + + libraries for simulation and control of robotic systems.

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







Scientific calculations

FFTW: A C language library that calculates DFT using one-dimensional or multidimensional calculations.

GSL:GNU Science Library.







Script

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

Lua: A small, fast scripting engine for configuration files and basic application scripting.

Luacxx: C + + API for creating LUA bindings

SWIG: a wrapper/Interface builder that allows you to link your C + + code to JAVASCRIPT,PERL,PHP,PYTHON,TCL and Ruby

V7: embedded JavaScript engine.

V8: Google's fast JavaScript engine can be embedded in any C + + application.







Serialization of

Cap ' n Proto: Fast data Interchange Format and RPC system.

CEREAL:C++11 Serialization Library

Flatbuffers: Memory-efficient Serialization library

Messagepack:c/c++ 's efficient binary serialization library, such as JSON

PROTOBUF: Protocol buffering, Google's data Interchange format.

PROTOBUF-C: Implementation of protocol Buffering for C language

Simplebinaryencoding: Encoding and decoding of application information in binary format for low-latency applications.

Thrift: Efficient cross-language ipc/rpc for c++,java,python,php,c# and many other languages, originally developed by Twitter.







Video

LIBVPX:VP8/VP9 encoding and decoding SDK

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

LIBDE265: The implementation of an open h.265 video codec.

OpenH264: Open source h.364 codec.

Theora: Free open source video compression format.







Virtual machines

Interesting VMs in Carpvm:c, let's take a look at this.

Micropython: Designed to realize python3.x on single chip microcomputer

TINYVM: A small, fast, lightweight virtual machine written in pure ANSI C.







Web application Framework

Civetweb: Provides an easy-to-use, powerful, C + + embedded Web server with optional CGI,SSL and LUA support.

CPPCMS: Free high-performance Web development framework (not CMS).

Crow: A C + + mini-Web framework (inspired by Python Flask)

Kore: An ultra-fast and flexible Web server/framework for Web applications developed using the C language.

Libonion: A lightweight library that helps you create a Web server using the C programming language.

Qdjango: The QT Library-based web framework, written in C + +, tries to emulate the Django API, so this name is used.

Wt: Developing a C + + library for Web applications.







Xml



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




EXPAT: XML parsing library written in C language

Libxml2:gnome XML C Parser and Toolkit

libxml++: XML parser for C + +

Pugixml: A lightweight, simple and fast XML parser for C + + that supports XPath.

Rapidxml: Try to create the fastest XML parser, while maintaining ease of use, portability, and reasonable compatibility.

TinyXML: A simple, small c++xml parser that can be easily integrated into other projects.

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

Tinyxml++:tinyxml is a brand new interface that uses many of the many advantages of C + +, templates, exceptions and better exception handling.

Xerces-c++: XML validation parser written with a subset of portable C + +.







Multi-item Mixed



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




Small, secure and fast format library for C + + format:c++

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

Cxx-prettyprint: Print library for C + + containers

Dynapdf: Easy-to-use PDF generation Library

Gcc-poison: A simple header file that helps developers to disallow unsafe C + + functions in an application.

Googlemock: Writing and using libraries for C + + impersonation classes

HTTP request/Response resolver for HTTP Parser:c

Libcpuid: Small C library for x86 CPU detection box feature extraction

Libevil: License Manager

LIBUSB: Universal USB library that allows mobile access to USB devices

PCRE: Regular expression C library, inspired by the functionality of the Perl Express expression.

Inter-process communication framework for Remote call framework:c++.

Scintilla: Open Source code-editing controls

Serial Communication library:c++ Language programming cross-platform, serial port library.

Sds:c's simple dynamic string library

SLDR: Ultra-Lightweight DNS resolver

SLRE: Ultra-lightweight regular expression library

Stage: Mobile robot simulator

Vartypes:c++/qt4 feature-rich, object-oriented management variable framework.

Zbar: ' Barcode scanner ' library, you can scan photos, pictures and barcodes in the video stream and return the results.

Cppverbalexpressions: Easy-to-use C + + regular expressions

Qtverbalexpressions: QT library based on C + + verbalexpressions Library

Php-cpp: Using C + + to build a library of PHP extensions

Another string library of Better String:c, which is richer, but has no buffer overflow problem, also contains a C + + wrapper.







Software



Software for creating a development environment




Compiler



C + + Compiler list




Clang: Developed by Apple Inc.

Gcc:gnu Compiler Collection

Intel C + + Compiler: Developed by Intel Corporation

LLVM: A collection of modular and reusable compilers and toolchain technologies

Microsoft Visual C + +: MSVC, developed by Microsoft Corporation

Open watcom:watcom,c,c++ and Fortran cross compilers and tools

TCC: Lightweight C-language compiler







Online compiler



On-line compiler list for C + +




Codepad: Online compiler/interpreter, a simple collaboration tool

Codetwist: A simple online compiler/interpreter that you can paste in c,c++ or Java code, execute online and view the results

Coliru: Online compiler/shell, support various C + + compilers

Compiler Explorer: Interactive compiler for assembly output

Compiling and executing C + + programs online on Compileonline:linux

Ideone: An online compiler and debugging tool that allows you to compile and execute your source code online, supporting more than 60 programming languages.







Debugger



List of C + + debuggers




Comparison of Debuggers: Debugger list from Wikipedia

GDB:GNU Debugger

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







Integrated development Environment (IDE)



A list of integrated development environments for C + +




Appcode: Building an integrated development environment for Objective-c,c,c++,java and Java development on the JetBrains ' IntelliJ idea Platform

Clion: Integrated development environment for cross-platform C/D + + from JetBrains

Code::Blocks: Free c,c++ and FORTRAN integrated development environment

CodeLite: Another cross-platform, free, C + + integrated development environment

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

Eclipse CDT: Full-featured C and C + + integrated development environment based on the Eclipse platform

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

IBM VisualAge: Home computer integrated development environment from IBM.

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

KDevelop: Free open source integrated development environment

Microsoft Visual Studio: An integrated development environment from Microsoft

NetBeans: An integrated development environment primarily for Java development, as well as other languages, especially php,c/c++ and HTML5.

QT Creator: A cross-platform C++,javascript and QML integrated development environment, also part of the QT SDK.

Rtags:c/c++ Client server index for integration with clang-based Emacs

Xcode: Developed by Apple Inc.

Youcompleteme: An engine for vim that quickly blurs a search and makes code completion based on the code you're knocking on.







Build the System

Bear: Tool for generating a compiled database for the Clang tool

Biicode: Simple file-based dependency manager.

CMake: Free, cross-platform, open source software is used to manage the process of building software using an independent compilation method.

CPM: C + + Package Manager based on CMake and Git

Fastbuild: High-performance, open-source build system that supports highly scalable compilation, buffering, and network distribution.

Ninja: A small build system focused on speed

SCons: Software build tool configured with Python Scipt

Tundra: High-performance code-building systems, even for very large software projects, provide the best incremental build times.

Tup: File-based build system for background monitoring of changing files.







Static code Analysis



List of code analysis tools to improve quality and reduce defects




Cppcheck: Static C + + code analysis tool

Include-what-you-use: Tools that use clang for code analysis can include in C and C + + files.

Oclint: Static source code analysis tool for c,c++ and objective-c to improve quality and reduce defects.

Clang Static Analyzer: Source Code analysis tool for finding bugs in c,c++ and objective-c programs

List of tools for static code analysis: A list of static Codes Analyzer tools from Wikipedia



Thank the ordinary road and Fffaraz, reproduced please indicate the source.










on how to improve the performance of Web server concurrency Next: Skip list jump table implementation



Recommended C/+ + frameworks and libraries




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.