关于 C++ 框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。
C++标准库,包括了STL容器,算法和函数等。
C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard Template Library:标准模板库C POSIX library : POSIX系统的C标准库规范ISO C++ Standards Committee :C++标准委员会
C++通用框架和库
Apache C++ Standard Library:是一系列算法,容器,迭代器和其他基本组件的集合ASL :Adobe源代码库提供了同行的评审和可移植的C++源代码库。Boost :大量通用C++库的集合。BDE :来自于彭博资讯实验室的开发环境。Cinder:提供专业品质创造性编码的开源开发社区。Cxxomfort:轻量级的,只包含头文件的库,将C++ 11的一些新特性移植到C++03中。Dlib:使用契约式编程和现代C++科技设计的通用的跨平台的C++库。EASTL :EA-STL公共部分ffead-cpp :企业应用程序开发框架Folly:由Facebook开发和使用的开源C++库JUCE :包罗万象的C++类库,用于开发跨平台软件libPhenom:用于构建高性能和高度可扩展性系统的事件框架。LibSourcey :用于实时的视频流和高性能网络应用程序的C++11 evented IOLibU : C语言写的多平台工具库Loki :C++库的设计,包括常见的设计模式和习语的实现。MiLi :只含头文件的小型C++库openFrameworks :开发C++工具包,用于创意性编码。Qt :跨平台的应用程序和用户界面框架Reason :跨平台的框架,使开发者能够更容易地使用Java,.Net和Python,同时也满足了他们对C++性能和优势的需求。ROOT :具备所有功能的一系列面向对象的框架,能够非常高效地处理和分析大量的数据,为欧洲原子能研究机构所用。STLport:是STL具有代表性的版本STXXL:用于额外的大型数据集的标准模板库。Ultimate++ :C++跨平台快速应用程序开发框架Windows Template Library:用于开发Windows应用程序和UI组件的C++库Yomm11 :C++11的开放multi-methods.
音频,声音,音乐,数字化音乐库
FMOD :易于使用的跨平台的音频引擎和音频内容的游戏创作工具。Maximilian :C++音频和音乐数字信号处理库OpenAL :开源音频库—跨平台的音频APIOpus:一个完全开放的,免版税的,高度通用的音频编解码器Speex:免费编解码器,为Opus所废弃Tonic: C++易用和高效的音频合成Vorbis: Ogg Vorbis是一种完全开放的,非专有的,免版税的通用压缩音频格式。
生物信息,基因组学和生物技术
libsequence:用于表示和分析群体遗传学数据的C++库。SeqAn:专注于生物数据序列分析的算法和数据结构。Vcflib :用于解析和处理VCF文件的C++库Wham:直接把联想测试应用到BAM文件的基因结构变异。
压缩和归档库
bzip2:一个完全免费,免费专利和高质量的数据压缩doboz:能够快速解压缩的压缩库PhysicsFS:对各种归档提供抽象访问的库,主要用于视频游戏,设计灵感部分来自于Quake3的文件子系统。KArchive:用于创建,读写和操作文件档案(例如zip和 tar)的库,它通过QIODevice的一系列子类,使用gzip格式,提供了透明的压缩和解压缩的数据。LZ4 :非常快速的压缩算法LZHAM :无损压缩数据库,压缩比率跟LZMA接近,但是解压缩速度却要快得多。LZMA :7z格式默认和通用的压缩方法。LZMAT :及其快速的实时无损数据压缩库miniz:单一的C源文件,紧缩/膨胀压缩库,使用zlib兼容API,ZIP归档读写,PNG写方式。Minizip:Zlib最新bug修复,支持PKWARE磁盘跨越,AES加密和IO缓冲。Snappy :快速压缩和解压缩ZLib :非常紧凑的数据流压缩库ZZIPlib:提供ZIP归档的读权限。
并发执行和多线程
Boost.Compute :用于OpenCL的C++GPU计算库Bolt :针对GPU进行优化的C++模板库C++React :用于C++11的反应性编程库Intel TBB :Intel线程构件块Libclsph:基于OpenCL的GPU加速SPH流体仿真库OpenCL :并行编程的异构系统的开放标准OpenMP:OpenMP APIThrust :类似于C++标准模板库的并行算法库HPX :用于任何规模的并行和分布式应用程序的通用C++运行时系统VexCL :用于OpenCL/CUDA 的C++向量表达式模板库。
数据库,SQL服务器,ODBC驱动程序和工具
hiberlite :用于Sqlite3的C++对象关系映射Hiredis: 用于Redis数据库的很简单的C客户端库LevelDB: 快速键值存储库LMDB:符合数据库四大基本元素的嵌入键值存储MySQL++:封装了MySql的C API的C++ 包装器RocksDB:来自Facebook的嵌入键值的快速存储SQLite:一个完全嵌入式的,功能齐全的关系数据库,只有几百KB,可以正确包含到你的项目中。
调试库, 内存和资源泄露检测,单元测试
Boost.Test:Boost测试库Catch:一个很时尚的,C++原生的框架,只包含头文件,用于单元测试,测试驱动开发和行为驱动开发。CppUnit:由JUnit移植过来的C++测试框架CTest:CMake测试驱动程序googletest:谷歌C++测试框架ig-debugheap:用于跟踪内存错误的多平台调试堆libtap:用C语言编写测试MemTrack —用于C++跟踪内存分配microprofile- 跨平台的网络试图分析器minUnit :使用C写的迷你单元测试框架,只使用了两个宏Remotery:用于web视图的单一C文件分析器UnitTest++:轻量级的C++单元测试框架
动力学仿真引擎
Box2D:2D的游戏物理引擎。Bullet :3D的游戏物理引擎。Chipmunk :快速,轻量级的2D游戏物理库LiquidFun:2D的游戏物理引擎ODE :开放动力学引擎-开源,高性能库,模拟刚体动力学。ofxBox2d:Box2D开源框架包装器。Simbody :高性能C++多体动力学/物理库,模拟关节生物力学和机械系统,像车辆,机器人和人体骨骼。
XML就是个垃圾,xml的解析很烦人,对于计算机它也是个灾难。这种糟糕的东西完全没有存在的理由了。-Linus Torvalds
Expat :用C语言编写的xml解析库Libxml2 :Gnome的xml C解析器和工具包libxml++ :C++的xml解析器PugiXML :用于C++的,支持XPath的轻量级,简单快速的XML解析器。RapidXml :试图创建最快速的XML解析器,同时保持易用性,可移植性和合理的W3C兼容性。TinyXML :简单小型的C++XML解析器,可以很容易地集成到其它项目中。TinyXML2:简单快速的C++CML解析器,可以很容易集成到其它项目中。TinyXML++:TinyXML的一个全新的接口,使用了C++的许多许多优势,模板,异常和更好的异常处理。Xerces-C++ :用可移植的C++的子集编写的XML验证解析器。
一些有用的库或者工具,但是不适合上面的分类,或者还没有分类。
C++ Format :C++的小型,安全和快速格式化库casacore :从aips++ 派生的一系列C++核心库cxx-prettyprint:用于C++容器的打印库DynaPDF :易于使用的PDF生成库gcc-poison :帮助开发人员禁止应用程序中的不安全的C/C++函数的简单的头文件。googlemock:编写和使用C++模拟类的库HTTP Parser :C的http请求/响应解析器libcpuid :用于x86 CPU检测盒特征提取的小型C库libevil :许可证管理器libusb:允许移动访问USB设备的通用USB库PCRE:正则表达式C库,灵感来自于Perl中正则表达式的功能。Remote Call Framework :C++的进程间通信框架。Scintilla :开源的代码编辑控件Serial Communication Library :C++语言编写的跨平台,串口库。SDS:C的简单动态字符串库SLDR :超轻的DNS解析器SLRE: 超轻的正则表达式库Stage :移动机器人模拟器VarTypes:C++/Qt4功能丰富,面向对象的管理变量的框架。ZBar:‘条形码扫描器’库,可以扫描照片,图片和视频流中的条形码,并返回结果。CppVerbalExpressions :易于使用的C++正则表达式QtVerbalExpressions:基于C++ VerbalExpressions 库的Qt库PHP-CPP:使用C++来构建PHP扩展的库Better String :C的另一个字符串库,功能更丰富,但是没有缓冲溢出问题,还包含了一个C++包装器。
用于创建开发环境的软件
C/C++编译器列表
Clang :由苹果公司开发的GCC:GNU编译器集合Intel C++ Compiler :由英特尔公司开发LLVM :模块化和可重用编译器和工具链技术的集合Microsoft Visual C++ :MSVC,由微软公司开发Open WatCom :Watcom,C,C++和Fortran交叉编译器和工具TCC :轻量级的C语言编译器
在线C/C++编译器列表
codepad :在线编译器/解释器,一个简单的协作工具CodeTwist:一个简单的在线编译器/解释器,你可以粘贴的C,C++或者Java代码,在线执行并查看结果coliru :在线编译器/shell, 支持各种C++编译器Compiler Explorer:交互式编译器,可以进行汇编输出CompileOnline:Linux上在线编译和执行C++程序Ideone :一个在线编译器和调试工具,允许你在线编译源代码并执行,支持60多种编程语言。
C/C++调试器列表
Comparison of debuggers :来自维基百科的调试器列表GDB :GNU调试器Valgrind:内存调试,内存泄露检测,性能分析工具。
C/C++集成开发环境列表
AppCode :构建与JetBrains’ IntelliJ IDEA 平台上的用于Objective-C,C,C++,Java和Java开发的集成开发环境CLion:来自JetBrains的跨平台的C/C++的集成开发环境Code::Blocks :免费C,C++和Fortran的集成开发环境CodeLite :另一个跨平台的免费的C/C++集成开发环境Dev-C++:可移植的C/C++/C++11集成开发环境Eclipse CDT:基于Eclipse平台的功能齐全的C和C++集成开发环境Geany :轻量级的快速,跨平台的集成开发环境。IBM VisualAge :来自IBM的家庭计算机集成开发环境。Irony-mode:由libclang驱动的用于Emacs的C/C++微模式KDevelop:免费开源集成开发环境Microsoft Visual Studio :来自微软的集成开发环境NetBeans :主要用于Java开发的的集成开发环境,也支持其他语言,尤其是PHP,C/C++和HTML5。Qt Creator:跨平台的C++,Javascript和QML集成开发环境,也是Qt SDK的一部分。rtags:C/C++的客户端服务器索引,用于 跟基于clang的emacs的集成Xcode :由苹果公司开发YouCompleteMe:一个用于Vim的根据你敲的代码快速模糊搜索并进行代码补全的引擎。
提高质量,减少瑕疵的代码分析工具列表
Cppcheck :静态C/C++代码分析工具include-what-you-use :使用clang进行代码分析的工具,可以#include在C和C++文件中。OCLint :用于C,C++和Objective-C的静态源代码分析工具,用于提高质量,减少瑕疵。Clang Static Analyzer:查找C,C++和Objective-C程序bug的源代码分析工具List of tools for static code analysis :来自维基百科的静态代码分析工具列表