转自:https://blog.csdn.net/xiaoxiaoyeyaya/article/details/42541419?utm_source=blogxgwz2 用于记录
C++ 资源大全
关于 C++ 框架、库和资源的一些整理,包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。
标准库
C++标准库,包括了STL容器,算法和函数等。
- C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。
- Standard Template Library:标准模板库
- C POSIX library : POSIX系统的C标准库规范
- ISO C++ Standards Committee :C++标准委员会
框架
C++通用框架和库
- Qt :跨平台的应用程序和用户界面框架 http://download.qt.io/archive/qt/
- Boost :大量通用C++库的集合。
- Apache C++ Standard Library:是一系列算法,容器,迭代器和其他基本组件的集合
- Folly:由Facebook开发和使用的开源C++库
- LibSourcey :用于实时的视频流和高性能网络应用程序的C++11 evented IO
- Loki :C++库的设计,包括常见的设计模式和习语的实现。
- Reason :跨平台的框架,使开发者能够更容易地使用Java,.Net和Python,同时也满足了他们对C++性能和优势的需求。
- STLport:是STL具有代表性的版本
- Windows Template Library:用于开发Windows应用程序和UI组件的C++库
人工智能
- Evolving Objects:基于模板的,ANSI C++演化计算库,能够帮助你非常快速地编写出自己的随机优化算法。
- Neu:C++11框架,编程语言集,用于创建人工智能应用程序的多用途软件系统。
异步事件循环
- Boost.Asio:用于网络和底层I/O编程的跨平台的C++库。
- libev :功能齐全,高性能的时间循环,轻微地仿效libevent,但是不再像libevent一样有局限性,也修复了它的一些bug。
- libevent :事件通知库
- libuv :跨平台异步I/O。
音频
音频,声音,音乐,数字化音乐库
- FMOD :易于使用的跨平台的音频引擎和音频内容的游戏创作工具。
- Maximilian :C++音频和音乐数字信号处理库
- OpenAL :开源音频库—跨平台的音频API
- Opus:一个完全开放的,免版税的,高度通用的音频编解码器
- Tonic: C++易用和高效的音频合成
压缩
压缩和归档库
- ZLib :非常紧凑的数据流压缩库
- bzip2:一个完全免费,免费专利和高质量的数据压缩
- LZHAM :无损压缩数据库,压缩比率跟LZMA接近,但是解压缩速度却要快得多。
- LZMA :7z格式默认和通用的压缩方法。
- Minizip:Zlib最新bug修复,支持PKWARE磁盘跨越,AES加密和IO缓冲。
并发性
并发执行和多线程
- Boost.Compute :用于OpenCL的C++GPU计算库
- Bolt :针对GPU进行优化的C++模板库
- C++React :用于C++11的反应性编程库
- OpenCL :并行编程的异构系统的开放标准
- VexCL :用于OpenCL/CUDA 的C++向量表达式模板库。
容器
- C++ B-tree :基于B树数据结构,实现命令内存容器的模板库
- Hashmaps: C++中开放寻址哈希表算法的实现
密码学
- Bcrypt :一个跨平台的文件加密工具,加密文件可以移植到所有可支持的操作系统和处理器中。
- Crypto++:一个有关加密方案的免费的C++库
- GnuTLS :实现了SSL,TLS和DTLS协议的安全通信库
- OpenSSL : 一个强大的,商用的,功能齐全的,开放源代码的加密库。
数据库
数据库,SQL服务器,ODBC驱动程序和工具
- hiberlite :用于Sqlite3的C++对象关系映射
- Hiredis: 用于Redis数据库的很简单的C客户端库
- MySQL++:封装了MySql的C API的C++ 包装器
- RocksDB:来自Facebook的嵌入键值的快速存储
- SQLite:一个完全嵌入式的,功能齐全的关系数据库,只有几百KB,可以正确包含到你的项目中。
调试
调试库, 内存和资源泄露检测,单元测试
- Boost.Test:Boost测试库
- CppUnit:由JUnit移植过来的C++测试框架
- CTest:CMake测试驱动程序
- googletest:谷歌C++测试框架
- ig-debugheap:用于跟踪内存错误的多平台调试堆
- MemTrack —用于C++跟踪内存分配
- UnitTest++:轻量级的C++单元测试框架
游戏引擎
图形用户界面
- GTK+: 用于创建图形用户界面的跨平台工具包
- gtkmm :用于受欢迎的GUI库GTK+的官方C++接口。
- Qwt :用户与技术应用的Qt 控件
- QwtPlot3D :功能丰富的基于Qt/OpenGL的C++编程库,本质上提供了一群3D控件
- OtterUI :OtterUI 是用于嵌入式系统和互动娱乐软件的用户界面开发解决方案
- wxWidgets C++库,允许开发人员使用一个代码库可以为widows, Mac OS X,Linux和其他平台创建应用程序
图形
图像处理
- Boost.GIL:通用图像库
- CImg :用于图像处理的小型开源C++工具包
- CxImage :用于加载,保存,显示和转换的图像处理和转换库,可以处理的图片格式包括 BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K。
- OpenCV : 开源计算机视觉类库
国际化
- libiconv :用于不同字符编码之间的编码转换库
Jason
- jbson :C++14中构建和迭代BSON data,和Json 文档的库
- JeayeSON:非常健全的C++ JSON库,只包含头文件
- json-parser:用可移植的ANSI C编写的JSON解析器,占用内存非常少
- libjson:轻量级的JSON库
- qt-json :用于JSON数据和 QVariant层次间的相互解析的简单类
- QJson:将JSON数据映射到QVariant对象的基于Qt的库
日志
机器学习
多媒体
网络
- ACE:C++面向对象网络变成工具包
- Boost.Asio:用于网络和底层I/O编程的跨平台的C++库
- libcurl :多协议文件传输库
- Mongoose:非常轻量级的网络服务器
- Muduo :用于Linux多线程服务器的C++非阻塞网络库
- WebSocket++ :基于C++/Boost Aiso的websocket 客户端/服务器库
机器人学
- MRPT:移动机器人编程工具包
- Robotics Library (RL): 一个独立的C++库,包括机器人动力学,运动规划和控制。
- RobWork:一组C++库的集合,用于机器人系统的仿真和控制。
- ROS :机器人操作系统,提供了一些库和工具帮助软件开发人员创建机器人应用程序。
脚本
- ChaiScript :用于C++的易于使用的嵌入式脚本语言。
- Lua :用于配置文件和基本应用程序脚本的小型快速脚本引擎。
- SWIG :一个可以让你的C++代码链接到JavaScript,Perl,PHP,Python,Tcl和Ruby的包装器/接口生成器
- V8 :谷歌的快速JavaScript引擎,可以被嵌入到任何C++应用程序中。
视频
虚拟机
- TinyVM:用纯粹的ANSI C编写的小型,快速,轻量级的虚拟机。
Web应用框架
XML
XML就是个垃圾,xml的解析很烦人,对于计算机它也是个灾难。这种糟糕的东西完全没有存在的理由了。-Linus Torvalds
- Libxml2 :Gnome的xml C解析器和工具包
- libxml++ :C++的xml解析器
- Xerces-C++ :用可移植的C++的子集编写的XML验证解析器。
多项混杂
一些有用的库或者工具,但是不适合上面的分类,或者还没有分类。
- DynaPDF :易于使用的PDF生成库
- googlemock:编写和使用C++模拟类的库
- HTTP Parser :C的http请求/响应解析器
- libusb:允许移动访问USB设备的通用USB库
- PCRE:正则表达式C库,灵感来自于Perl中正则表达式的功能。
- Remote Call Framework :C++的进程间通信框架。
- ZBar:‘条形码扫描器’库,可以扫描照片,图片和视频流中的条形码,并返回结果。
- PHP-CPP:使用C++来构建PHP扩展的库
软件
用于创建开发环境的软件
编译器
C/C++编译器列表
- Clang :由苹果公司开发的
- GCC:GNU编译器集合
- LLVM :模块化和可重用编译器和工具链技术的集合
- Microsoft Visual C++ :MSVC,由微软公司开发
调试器
C/C++调试器列表
集成开发环境(IDE)
C/C++集成开发环境列表
- Microsoft Visual Studio :来自微软的集成开发环境
- NetBeans :主要用于Java开发的的集成开发环境,也支持其他语言,尤其是PHP,C/C++和HTML5。
- Qt Creator:跨平台的C++,Javascript和QML集成开发环境,也是Qt SDK的一部分。
- Xcode :由苹果公司开发
构建系统
静态代码分析
提高质量,减少瑕疵的代码分析工具列表
- Cppcheck :静态C/C++代码分析工具
- include-what-you-use :使用clang进行代码分析的工具,可以#include在C和C++文件中。
- OCLint :用于C,C++和Objective-C的静态源代码分析工具,用于提高质量,减少瑕疵。