[轉載]C/C++框架和庫

C/C++框架和庫

  • 裝載自:http://blog.csdn.net/xiaoxiaoyeyaya/article/details/42541419

值得學習的C語言開源項目

    1. Webbench
      Webbench是一個在linux下使用的非常簡單的網站壓測工具。它使用fork()模擬多個客戶端同時訪問我們設定的URL,測試網站在壓力下工作的性能,最多可以模擬3萬個并發連接去測試網站的負載能力。Webbench使用C語言編寫, 代碼實在太簡潔,源碼加起來不到600行。
      下載鏈接:http://home.tiscali.cz/~cz210552/webbench.html
    1. Tinyhttpd
      tinyhttpd是一個超輕量型Http Server,使用C語言開發,全部代碼只有502行(包括注釋),附帶一個簡單的Client,可以通過閱讀這段代碼理解一個 Http Server 的本質。
      下載鏈接:http://sourceforge.net/projects/tinyhttpd/
    1. cJSON
      cJSON是C語言中的一個JSON編解碼器,非常輕量級,C文件只有500多行,速度也非常理想。
      cJSON也存在幾個弱點,雖然功能不是非常強大,但cJSON的小身板和速度是最值得贊賞的。其代碼被非常好地維護著,結構也簡單易懂,可以作為一個非常好的C語言項目進行學習。
      項目主頁:http://sourceforge.net/projects/cjson/
    1. CMockery
      cmockery是google發布的用于C單元測試的一個輕量級的框架。它很小巧,對其他開源包沒有依賴,對被測試代碼侵入性小。cmockery的源代碼行數不到3K,你閱讀一下will_return和mock的源代碼就一目了然了。
      主要特點:
      免費且開源,google提供技術支持;
      輕量級的框架,使測試更加快速簡單;
      避免使用復雜的編譯器特性,對老版本的編譯器來講,兼容性好;
      并不強制要求待測代碼必須依賴C99標準,這一特性對許多嵌入式系統的開發很有用
      下載鏈接:http://code.google.com/p/cmockery/downloads/list
    1. Libev
      libev是一個開源的事件驅動庫,基于epoll,kqueue等OS提供的基礎設施。其以高效出名,它可以將IO事件,定時器,和信號統一起來,統一放在事件處理這一套框架下處理。基于Reactor模式,效率較高,并且代碼精簡(4.15版本8000多行),是學習事件驅動編程的很好的資源。
      下載鏈接:http://software.schmorp.de/pkg/libev.html
    1. Memcached
      Memcached 是一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提供動態數據庫驅動網站的速度。Memcached 基于一個存儲鍵/值對的 hashmap。Memcached-1.4.7的代碼量還是可以接受的,只有10K行左右。
      下載地址:http://memcached.org/
    1. Lua
      Lua很棒,Lua是巴西人發明的,這些都令我不爽,但是還不至于臉紅,最多眼紅。
      讓我臉紅的是Lua的源代碼,百分之一百的ANSI C,一點都不摻雜。在任何支持ANSI C編譯器的平臺上都可以輕松編譯通過。我試過,真是一點廢話都沒有。Lua的代碼數量足夠小,5.1.4僅僅1.5W行,去掉空白行和注釋估計能到1W行。
      下載地址:http://www.lua.org/
    1. SQLite
      SQLite是一個開源的嵌入式關系數據庫,實現自包容、零配置、支持事務的SQL數據庫引擎。 其特點是高度便攜、使用方便、結構緊湊、高效、可靠。足夠小,大致3萬行C代碼,250K。
      下載地址:http://www.sqlite.org/ 。
    1. UNIX v6
      UNIX V6 的內核源代碼包括設備驅動程序在內 約有1 萬行,這個數量的源代碼,初學者是能夠充分理解的。有一種說法是一個人所能理解的代碼量上限為1 萬行,UNIX V6的內核源代碼從數量上看正好在這個范圍之內。看到這里,大家是不是也有“如果只有1萬行的話沒準兒我也能學會”的想法呢?
      另一方面,最近的操作系統,例如Linux 最新版的內核源代碼據說超過了1000 萬行。就算不是初學者,想完全理解全部代碼基本上也是不可能的。
      下載地址:http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6
    1. NETBSD
      NetBSD是一個免費的,具有高度移植性的 UNIX-like 操作系統,是現行可移植平臺最多的操作系統,可以在許多平臺上執行,從 64bit alpha 服務器到手持設備和嵌入式設備。NetBSD計劃的口號是:”Of course it runs NetBSD”。它設計簡潔,代碼規范,擁有眾多先進特性,使得它在業界和學術界廣受好評。由于簡潔的設計和先進的特征,使得它在生產和研究方面,都有卓越的表現,而且它也有受使用者支持的完整的源代碼。許多程序都可以很容易地通過NetBSD Packages Collection獲得。
      下載地址:http://www.netbsd.org/
      C++ 資源大全
      關于 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 IO
LibU : 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.

人工智能
btsk :游戲行為樹啟動器工具
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:一個完全開放的,免版稅的,高度通用的音頻編解碼器
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 API
Thrust :類似于C++標準模板庫的并行算法庫
HPX :用于任何規模的并行和分布式應用程序的通用C++運行時系統
VexCL :用于OpenCL/CUDA 的C++向量表達式模板庫。

容器
C++ B-tree :基于B樹數據結構,實現命令內存容器的模板庫
Hashmaps: C++中開放尋址哈希表算法的實現

密碼學
Bcrypt :一個跨平臺的文件加密工具,加密文件可以移植到所有可支持的操作系統和處理器中。
BeeCrypt:
Botan: C++加密庫
Crypto++:一個有關加密方案的免費的C++庫
GnuPG: OpenPGP標準的完整實現
GnuTLS :實現了SSL,TLS和DTLS協議的安全通信庫
Libgcrypt
libmcrypt
LibreSSL:免費的SSL/TLS協議,屬于2014 OpenSSL的一個分支
LibTomCrypt:一個非常全面的,模塊化的,可移植的加密工具
libsodium:基于NaCI的加密庫,固執己見,容易使用
Nettle 底層的加密庫
OpenSSL : 一個強大的,商用的,功能齊全的,開放源代碼的加密庫。
Tiny AES128 in C :用C實現的一個小巧,可移植的實現了AES128ESB的加密算法

數據庫
數據庫,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++單元測試框架

游戲引擎
Cocos2d-x :一個跨平臺框架,用于構建2D游戲,互動圖書,演示和其他圖形應用程序。
Grit :社區項目,用于構建一個免費的游戲引擎,實現開放的世界3D游戲。
Irrlicht :C++語言編寫的開源高性能的實時#D引擎
Polycode:C++實現的用于創建游戲的開源框架(與Lua綁定)。

圖形用戶界面
CEGUI : 很靈活的跨平臺GUI庫
FLTK :快速,輕量級的跨平臺的C++GUI工具包。
GTK+: 用于創建圖形用戶界面的跨平臺工具包
gtkmm :用于受歡迎的GUI庫GTK+的官方C++接口。
imgui:擁有最小依賴關系的立即模式圖形用戶界面
libRocket :libRocket 是一個C++ HTML/CSS 游戲接口中間件
MyGUI :快速,靈活,簡單的GUI
Ncurses:終端用戶界面
QCustomPlot :沒有更多依賴關系的Qt繪圖控件
Qwt :用戶與技術應用的Qt 控件
QwtPlot3D :功能豐富的基于Qt/OpenGL的C++編程庫,本質上提供了一群3D控件
OtterUI :OtterUI 是用于嵌入式系統和互動娛樂軟件的用戶界面開發解決方案
PDCurses 包含源代碼和預編譯庫的公共圖形函數庫
wxWidgets C++庫,允許開發人員使用一個代碼庫可以為widows, Mac OS X,Linux和其他平臺創建應用程序

圖形
bgfx:跨平臺的渲染庫
Cairo:支持多種輸出設備的2D圖形庫
Horde3D 一個小型的3D渲染和動畫引擎
magnum C++11和OpenGL 2D/3D 圖形引擎
Ogre 3D 用C++編寫的一個面向場景,實時,靈活的3D渲染引擎(并非游戲引擎)
OpenSceneGraph 具有高性能的開源3D圖形工具包
Panda3D 用于3D渲染和游戲開發的框架,用Python和C++編寫。
Skia 用于繪制文字,圖形和圖像的完整的2D圖形庫
urho3d 跨平臺的渲染和游戲引擎。

圖像處理
Boost.GIL:通用圖像庫
CImg :用于圖像處理的小型開源C++工具包
CxImage :用于加載,保存,顯示和轉換的圖像處理和轉換庫,可以處理的圖片格式包括 BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K。
FreeImage :開源庫,支持現在多媒體應用所需的通用圖片格式和其他格式。
GDCM:Grassroots DICOM 庫
ITK:跨平臺的開源圖像分析系統
Magick++:ImageMagick程序的C++接口
MagickWnd:ImageMagick程序的C++接口
OpenCV : 開源計算機視覺類庫
tesseract-ocr:OCR引擎
VIGRA :用于圖像分析通用C++計算機視覺庫
VTK :用于3D計算機圖形學,圖像處理和可視化的開源免費軟件系統。

國際化
gettext :GNU `gettext’
IBM ICU:提供Unicode 和全球化支持的C、C++ 和Java庫
libiconv :用于不同字符編碼之間的編碼轉換庫

Jason
frozen : C/C++的Jason解析生成器
Jansson :進行編解碼和處理Jason數據的C語言庫
jbson :C++14中構建和迭代BSON data,和Json 文檔的庫
JeayeSON:非常健全的C++ JSON庫,只包含頭文件
JSON++ : C++ JSON 解析器
json-parser:用可移植的ANSI C編寫的JSON解析器,占用內存非常少
json11 :一個迷你的C++11 JSON庫
jute :非常簡單的C++ JSON解析器
ibjson:C語言中的JSON解析和打印庫,很容易和任何模型集成。
libjson:輕量級的JSON庫
PicoJSON:C++中JSON解析序列化,只包含頭文件
qt-json :用于JSON數據和 QVariant層次間的相互解析的簡單類
QJson:將JSON數據映射到QVariant對象的基于Qt的庫
RapidJSON: 用于C++的快速JSON 解析生成器,包含SAX和DOM兩種風格的API
YAJL :C語言中快速流JSON解析庫

日志
Boost.Log :設計非常模塊化,并且具有擴展性
easyloggingpp:C++日志庫,只包含單一的頭文件。
Log4cpp :一系列C++類庫,靈活添加日志到文件,系統日志,IDSA和其他地方。
templog:輕量級C++庫,可以添加日志到你的C++應用程序中

機器學習
Caffe :快速的神經網絡框架
CCV :以C語言為核心的現代計算機視覺庫
mlpack :可擴展的C++機器學習庫
OpenCV:開源計算機視覺庫
Recommender:使用協同過濾進行產品推薦/建議的C語言庫。
SHOGUN:Shogun 機器學習工具
sofia-ml :用于機器學習的快速增量算法套件

數學
Armadillo :高質量的C++線性代數庫,速度和易用性做到了很好的平衡。語法和MatlAB很相似
blaze:高性能的C++數學庫,用于密集和稀疏算法。
ceres-solver :來自谷歌的C++庫,用于建模和解決大型復雜非線性最小平方問題。
CGal: 高效,可靠的集合算法集合
cml :用于游戲和圖形的免費C++數學庫
Eigen :高級C++模板頭文件庫,包括線性代數,矩陣,向量操作,數值解決和其他相關的算法。
GMTL:數學圖形模板庫是一組廣泛實現基本圖形的工具。
GMP:用于個高精度計算的C/C++庫,處理有符號整數,有理數和浮點數。

多媒體
GStreamer :構建媒體處理組件圖形的庫
LIVE555 Streaming Media :使用開放標準協議(RTP/RTCP, RTSP, SIP) 的多媒體流庫
libVLC :libVLC (VLC SDK)媒體框架
QtAv:基于Qt和FFmpeg的多媒體播放框架,能夠幫助你輕而易舉地編寫出一個播放器
SDL :簡單直控媒體層
SFML :快速,簡單的多媒體庫

網絡
ACE:C++面向對象網絡變成工具包
Boost.Asio:用于網絡和底層I/O編程的跨平臺的C++庫
Casablanca:C++ REST SDK
cpp-netlib:高級網絡編程的開源庫集合
Dyad.c:C語言的異步網絡
libcurl :多協議文件傳輸庫
Mongoose:非常輕量級的網絡服務器
Muduo :用于Linux多線程服務器的C++非阻塞網絡庫
net_skeleton :C/C++的TCP 客戶端/服務器庫
nope.c :基于C語言的超輕型軟件平臺,用于可擴展的服務器端和網絡應用。 對于C編程人員,可以考慮node.js
Onion :C語言HTTP服務器庫,其設計為輕量級,易使用。
POCO:用于構建網絡和基于互聯網應用程序的C++類庫,可以運行在桌面,服務器,移動和嵌入式系統。
RakNet:為游戲開發人員提供的跨平臺的開源C++網絡引擎。
Tuf o :用于Qt之上的C++構建的異步Web框架。
WebSocket++ :基于C++/Boost Aiso的websocket 客戶端/服務器庫
ZeroMQ :高速,模塊化的異步通信庫

物理學
動力學仿真引擎
Box2D:2D的游戲物理引擎。
Bullet :3D的游戲物理引擎。
Chipmunk :快速,輕量級的2D游戲物理庫
LiquidFun:2D的游戲物理引擎
ODE :開放動力學引擎-開源,高性能庫,模擬剛體動力學。
ofxBox2d:Box2D開源框架包裝器。
Simbody :高性能C++多體動力學/物理庫,模擬關節生物力學和機械系統,像車輛,機器人和人體骨骼。

機器人學
MOOS-IvP :一組開源C++模塊,提供機器人平臺的自主權,尤其是自主的海洋車輛。
MRPT:移動機器人編程工具包
PCL :點云庫是一個獨立的,大規模的開放項目,用于2D/3D圖像和點云處理。
Robotics Library (RL): 一個獨立的C++庫,包括機器人動力學,運動規劃和控制。
RobWork:一組C++庫的集合,用于機器人系統的仿真和控制。
ROS :機器人操作系統,提供了一些庫和工具幫助軟件開發人員創建機器人應用程序。

科學計算
FFTW :用一維或者多維計算DFT的C語言庫。
GSL:GNU科學庫。

腳本
ChaiScript :用于C++的易于使用的嵌入式腳本語言。
Lua :用于配置文件和基本應用程序腳本的小型快速腳本引擎。
luacxx:用于創建Lua綁定的C++ 11 API
SWIG :一個可以讓你的C++代碼鏈接到JavaScript,Perl,PHP,Python,Tcl和Ruby的包裝器/接口生成器
V7:嵌入式的JavaScript 引擎。
V8 :谷歌的快速JavaScript引擎,可以被嵌入到任何C++應用程序中。

序列化
Cap’n Proto :快速數據交換格式和RPC系統。
cereal :C++11 序列化庫
FlatBuffers :內存高效的序列化庫
MessagePack :C/C++的高效二進制序列化庫,例如 JSON
protobuf :協議緩沖,谷歌的數據交換格式。
protobuf-c :C語言的協議緩沖實現
SimpleBinaryEncoding:用于低延遲應用程序的對二進制格式的應用程序信息的編碼和解碼。
Thrift :高效的跨語言IPC/RPC,用于C++,Java,Python,PHP,C#和其它多種語言中,最初由Twitter開發。

視頻
libvpx :VP8/VP9編碼解碼SDK
FFmpeg :一個完整的,跨平臺的解決方案,用于記錄,轉換視頻和音頻流。
libde265 :開放的h.265視頻編解碼器的實現。
OpenH264:開源H.364 編解碼器。
Theora :免費開源的視頻壓縮格式。

虛擬機
CarpVM:C中有趣的VM,讓我們一起來看看這個。
MicroPython :旨在實現單片機上Python3.x的實現
TinyVM:用純粹的ANSI C編寫的小型,快速,輕量級的虛擬機。

Web應用框架
Civetweb :提供易于使用,強大的,C/C++嵌入式Web服務器,帶有可選的CGI,SSL和Lua支持。
CppCMS :免費高性能的Web開發框架(不是 CMS).
Crow :一個C++微型web框架(靈感來自于Python Flask)
Kore :使用C語言開發的用于web應用程序的超快速和靈活的web服務器/框架。
libOnion:輕量級的庫,幫助你使用C編程語言創建web服務器。
QDjango:使用C++編寫的,基于Qt庫的web框架,試圖效仿Django API,因此得此名。
Wt :開發Web應用的C++庫。

XML
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:內存調試,內存泄露檢測,性能分析工具。

集成開發環境(IDE)
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的根據你敲的代碼快速模糊搜索并進行代碼補全的引擎。

構建系統
Bear :用于為clang工具生成編譯數據庫的工具
Biicode:基于文件的簡單依賴管理器。
CMake :跨平臺的免費開源軟件用于管理軟件使用獨立編譯的方法進行構建的過程。
CPM:基于CMake和Git的C++包管理器
FASTBuild:高性能,開源的構建系統,支持高度可擴展性的編譯,緩沖和網絡分布。
Ninja :專注于速度的小型構建系統
Scons :使用Python scipt 配置的軟件構建工具
tundra :高性能的代碼構建系統,甚至對于非常大型的軟件項目,也能提供最好的增量構建次數。
tup:基于文件的構建系統,用于后臺監控變化的文件。

靜態代碼分析
提高質量,減少瑕疵的代碼分析工具列表
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 :來自維基百科的靜態代碼分析工具列表

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280824.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280824.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280824.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何使用智能鈴聲避免在Android中令人尷尬的大聲鈴聲

Choosing a ringtone volume can be hard – there is no one setting that is right for all environments. What works perfectly at home may be too quiet for when you’re on the train, but too loud for the office. Intelligent Ringer can be used to adjust ringto…

為什么要把類設置成密封?

前幾天筆者提交了關于FasterKvCache的性能優化代碼,其中有一個點就是我把一些后續不需要繼承的類設置為了sealed密封類,然后就有小伙伴在問,為啥這個地方需要設置成sealed?提交的代碼如下所示:一般業務開發的同學可能接…

powershell 常用命令筆記

常用集合,方便后續復制粘貼 # 判斷文件在不在 # 輸出文件 IF(!(test-path $filePath)) {$result|Out-File $filePath }# 讀取txt $result(Get-Content $filePath -TotalCount 1).Trim() $result# 刪除文件 remove-item "C:\wistron\Datasource\spiderPort.txt…

Linux 性能監控 : CPU 、Memory 、 IO 、Network

一、CPU 1.良好狀態指標 CPU利用率&#xff1a;User Time < 70%&#xff0c;System Time < 35%&#xff0c;User Time System Time < 70% 上下文切換&#xff1a;與CPU利用率相關聯&#xff0c;如果CPU利用率狀態良好&#xff0c;大量的上下文切換也是可以接受的 可…

Java 打飛機(小游戲)[版權非本人 本人制作收藏整理]

今天在網絡上 看到一個純java的小游戲 代碼copy到 myeclipse中 居然效果還不錯 這是一些效果圖 當然了 圖片是我自己找的 有心興趣的朋友可以做的好看一點 具體的代碼 都放在自己的文件里去了 那么可以去下載 https://i.cnblogs.com/Files.aspx 轉載于:https://www.cnblogs…

Cygwin使用指南

1 引言cygwin是一個在windows平臺上運行的unix模擬環境&#xff0c;是cygnus solutions公司開發的自由軟件&#xff08;該公司開發了很多好東西&#xff0c;著名的還有eCos&#xff0c;不過現已被Redhat收購&#xff09;。它對于學習unix/linux操作環境&#xff0c;或者從unix到…

nest 架構_當有人打來您的Nest Hello時,如何讓Google Home通知您

nest 架構The Nest Hello can alert you on your phone whenever someone rings your doorbell, but if you have a Google Home, you can also have Google Assistant audibly announce that someone is at the door. 無論何時有人按下門鈴&#xff0c; Nest Hello都會在電話上…

如何序列化派生類

前言假設有一個 Person 抽象基類&#xff0c;其中包含 Student 和 Teacher 派生類&#xff1a;public class Person {public string Name { get; set; } }public class Student : Person {public int Score { get; set; } }public class Teacher : Person {public string Title…

OPC Client “failed to execute OPCENUM” 解決方法

進入cmd重新執行 OpcEnum.exe /regserver 即可。

django07: 模板語言(舊筆記)

詳見&#xff1a;https://www.cnblogs.com/liwenzhou/p/7931828.html#autoid-2-3-6 包含&#xff1a; 模板 塊 組件 靜態文件

block,inline和inline-block概念和區別

block&#xff1a;block-level elements (塊級元素) &#xff0c;inline&#xff1a; inline elements (內聯元素)。block元素通常被現實為獨立的一塊&#xff0c;會單獨換一行&#xff1b;inline元素則前后不會產生換行&#xff0c;一系列inline元素都在一行內顯示&#xff0c…

Hadoop3.0 WordCount測試一直Accept 狀態,Nodes of the cluster 頁面node列表個數為0

起因是我運行wordcount測試一直卡主&#xff0c;不能執行&#xff0c;一直處于 Accept 狀態&#xff0c;等待被執行&#xff0c;剛開始是各種配置yarn參數&#xff0c;以及host配置&#xff0c;后來發現還是不行 hadoop 集群安裝完成后&#xff0c;在50070的 HDFS 管理后臺能看…

nexus 手動增加_如何使用Google的工廠圖像手動升級Nexus設備

nexus 手動增加Google’s Nexus devices are supposed to receive timely updates, but the staggered rollout means it can take weeks for devices to receive over-the-air (OTA) updates. Luckily, there’s a faster (and geekier) way to install the latest version of…

教你創建Google網站地圖Sitemap.xml(轉)

http://teachmyself.blog.163.com/blog/static/18881422920119895248288/ Sitemap.xml是 google搞出來的&#xff0c;也就是網站地圖&#xff0c;不過這個網站地圖是用xml寫的&#xff0c;而且要按google的標準來寫&#xff0c;并且要將寫出來的這個文件 sitemap.xml上傳到自己…

Oracle存儲過程語法

創建基本的存儲過程 1 CREATE OR REPLACE PROCEDURE MyProName IS 2 BEGIN 3 NULL; 4 END; 行1:CREATE OR REPLACE PROCEDURE 是一個SQL語句通知Oracle數據庫去創建一個叫做skeleton存儲過程, 如果存在就覆蓋它; 行2:IS關鍵詞表明后面將跟隨一個PL/SQL體。 行3:BEGIN關鍵詞表…

WPF-16 圖形處理

我們這節主要介紹WPF常用畫圖標簽&#xff0c;由于WPF圖形處理設計大量篇幅 ,我們在這里拋磚引玉&#xff0c;具體更多的學習資料鏈接https://github.com/microsoft/WPF-Samples/tree/master/Graphics 該鏈接中微軟提供了大量的學習Demo&#xff0c;WPF圖形處理最大的區別在于…

powershell 文件/文件夾操作

新建文件夾 New-Item -ItemType Directory -Force -Path $TargetPath復制文件夾到另外文件夾 Copy-Item <源文件夾> <新文件夾> -recurse -force 復制文件&#xff08;與修改文件名&#xff09; // 達到復制文件到新文件夾&#xff0c;及修改文件名效果 copy-…

純CSS制作各種各樣的網頁圖標(三角形、暫停按鈕、下載箭頭、加號等)

三角形 <div class"box"></div> <style>.box{ width: 0;height: 0;border-top: 50px solid transparent;border-bottom: 50px solid transparent;border-left: 50px solid transparent;border-right: 50px solid red; } </style> 平行四邊形…

您的MyFitnessPal帳戶幾乎肯定已被黑客入侵,請立即更改密碼

If you’re one of the millions of the 150 million MyFitnessPal users, bad news: hackers have your email address, your user name, and your hashed password. 如果您是1.5億MyFitnessPal用戶中的數百萬用戶之一&#xff0c;那么這是個壞消息&#xff1a;黑客擁有您的電…

Oracle Grid 11.2.0.4 安裝是出現INS-30510: Insufficient number of ASM disks selected.

最新文章&#xff1a;Virsons Blog 錯誤的原因是由于磁盤數和冗余層級不匹配&#xff1a; 如果創建用來存放OCR和VOTEDISK的ASM磁盤組&#xff0c;那么External、Normal、High三種冗余級別對應的Failgroup個數是1、3、5。也就是說&#xff0c;創建這三種冗余級別的磁盤組至少分…