1. 程式人生 > >[C++] 分享國外程式設計師的 C++開發資源大全

[C++] 分享國外程式設計師的 C++開發資源大全

、Web應用框架、人工智慧、資料庫、圖片處理、機器學習、日誌、程式碼分析等。 標準庫

  • C++ Standard Library:是一系列類和函式的集合,使用核心語言編寫,也是C++ISO自身標準的一部分。

  • Standard Template Library:標準模板庫

  • C POSIX library : POSIX系統的C標準庫規範

  • ISO C++ Standards Committee :C++標準委員會

框架C++通用框架和庫 8 @2 K3 w2 H. W4 g4 ~, A3 t

  • 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框架,程式語言集,用於建立人工智慧應用程式的多用途軟體系統。; o3 D( Q+ A' [% I4 Y! X3 m

非同步事件迴圈

  • Boost.Asio:用於網路和底層I/O程式設計的跨平臺的C++庫。

  • libev :功能齊全,高效能的時間迴圈,輕微地仿效libevent,但是不再像libevent一樣有侷限性,也修復了它的一些bug。

  • libevent :事件通知庫

  • libuv :跨平臺非同步I/O。

音訊音訊,聲音,音樂,數字化音樂庫 - S, c$ _! u4 |6 d

  • FMOD :易於使用的跨平臺的音訊引擎和音訊內容的遊戲創作工具。

  • Maximilian :C++音訊和音樂數字訊號處理庫

  • OpenAL :開源音訊庫—跨平臺的音訊API

  • Opus:一個完全開放的,免版稅的,高度通用的音訊編解碼器

  • Speex:免費編解碼器,為Opus所廢棄

  • Tonic: C++易用和高效的音訊合成

  • Vorbis: Ogg Vorbis是一種完全開放的,非專有的,免版稅的通用壓縮音訊格式。

生態學生物資訊,基因組學和生物技術 8 e L t7 X6 l0 B

  • libsequence:用於表示和分析群體遺傳學資料的C++庫。

  • SeqAn:專注於生物資料序列分析的演算法和資料結構。

  • Vcflib :用於解析和處理VCF檔案的C++庫

  • Wham:直接把聯想測試應用到BAM檔案的基因結構變異。

壓縮壓縮和歸檔庫 $ X/ Y( n+ t8 q( y' h

  • 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歸檔的讀許可權。8 Q3 I* D8 w1 T; {/ z. m) Y! b

併發性併發執行和多執行緒

  • 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++向量表示式模板庫。( q; S+ I5 t- X' L6 q

容器

  • 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驅動程式和工具 % ^0 S% {& R- n+ o, \" e: G$ C

  • hiberlite :用於Sqlite3的C++物件關係對映

  • Hiredis: 用於Redis資料庫的很簡單的C客戶端庫

  • LevelDB: 快速鍵值儲存庫

  • LMDB:符合資料庫四大基本元素的嵌入鍵值儲存

  • MySQL++:封裝了MySql的C API的C++ 包裝器

  • RocksDB:來自Facebook的嵌入鍵值的快速儲存

  • SQLite:一個完全嵌入式的,功能齊全的關係資料庫,只有幾百KB,可以正確包含到你的專案中。7 |" g. p7 `! y7 r: z( q" L p

除錯除錯庫, 記憶體和資源洩露檢測,單元測試 5 s) J% x1 \$ j2 {

  • 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++單元測試框架) P3 h2 _. {2 k- S

遊戲引擎

  • 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和其他平臺建立應用程式8 [, _! Q; z1 E* v+ G

圖形

  • bgfx:跨平臺的渲染庫

  • Cairo:支援多種輸出裝置的2D圖形庫

  • Horde3D 一個小型的3D渲染和動畫引擎

  • magnum C++11和OpenGL 2D/3D 圖形引擎

  • Ogre 3D 用C++編寫的一個面向場景,實時,靈活的3D渲染引擎(並非遊戲引擎)

  • OpenSceneGraph 具有高效能的開源3D圖形工具包

  • Panda3D 用於3D渲染和遊戲開發的框架,用Python和C++編寫。

  • Skia 用於繪製文字,圖形和影象的完整的2D圖形庫

  • urho3d 跨平臺的渲染和遊戲引擎。* _; P4 t! Z0 N7 {

影象處理

  • 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++庫,處理有符號整數,有理數和浮點數。1 d" h7 l$ \( |+ @0 w: I

多媒體

  • GStreamer :構建媒體處理元件圖形的庫

  • LIVE555 Streaming Media :使用開放標準協議(RTP/RTCP, RTSP, SIP) 的多媒體流庫

  • libVLC :libVLC (VLC SDK)媒體框架

  • QtAv:基於Qt和FFmpeg的多媒體播放框架,能夠幫助你輕而易舉地編寫出一個播放器

  • SDL :簡單直控媒體層

  • SFML :快速,簡單的多媒體庫5 l) w( z0 ^0 B& s/ M; w0 W

網路

  • 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 :高速,模組化的非同步通訊庫) G8 y5 ] `' H% Y' \9 C

物理學動力學模擬引擎

  • Box2D:2D的遊戲物理引擎。

  • Bullet :3D的遊戲物理引擎。

  • Chipmunk :快速,輕量級的2D遊戲物理庫

  • LiquidFun:2D的遊戲物理引擎

  • ODE :開放動力學引擎-開源,高效能庫,模擬剛體動力學。

  • ofxBox2d:Box2D開源框架包裝器。

  • Simbody :高效能C++多體動力學/物理庫,模擬關節生物力學和機械系統,像車輛,機器人和人體骨骼。1 [; p3 p2 O$ G

機器人學

  • 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 :免費開源的視訊壓縮格式。- ?) w7 z, {( ^: K; r0 p4 X

虛擬機器

  • 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++庫。

XMLXML就是個垃圾,xml的解析很煩人,對於計算機它也是個災難。這種糟糕的東西完全沒有存在的理由了。——Linus Torvalds " X, R+ J4 `: R: J

  • 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驗證解析器。. b) }& [& u/ J0 J

多項混雜一些有用的庫或者工具,但是不適合上面的分類,或者還沒有分類。

  • 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++包裝器。5 ?& A6 ?( G: K: L& \

軟體用於建立開發環境的軟體 , S/ c4 Q/ w) J5 K) d' v 編譯器

  • Clang :由蘋果公司開發的

  • GCC:GNU編譯器集合

  • Intel C++ Compiler :由英特爾公司開發

  • LLVM :模組化和可重用編譯器和工具鏈技術的集合

  • Microsoft Visual C++ :MSVC,由微軟公司開發

  • Open WatCom :Watcom,C,C++和Fortran交叉編譯器和工具

  • TCC :輕量級的C語言編譯器

線上編譯器

  • codepad :線上編譯器/直譯器,一個簡單的協作工具

  • CodeTwist:一個簡單的線上編譯器/直譯器,你可以貼上的C,C++或者Java程式碼,線上執行並檢視結果

  • coliru :線上編譯器/shell, 支援各種C++編譯器

  • Compiler Explorer:互動式編譯器,可以進行彙編輸出

  • CompileOnline:Linux上線上編譯和執行C++程式

  • Ideone :一個線上編譯器和除錯工具,允許你線上編譯原始碼並執行,支援60多種程式語言。 l$ h5 B( B# H. q7 Q- ^1 }

偵錯程式

  • Comparison of debuggers :來自維基百科的偵錯程式列表

  • GDB :GNU偵錯程式

  • Valgrind:記憶體除錯,記憶體洩露檢測,效能分析工具。

整合開發環境(IDE)

  • 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的根據你敲的程式碼快速模糊搜尋並進行程式碼補全的引擎。1 r) M3 D" I( x, ?/ ^+ U

構建系統

  • Bear :用於為clang工具生成編譯資料庫的工具

  • Biicode:基於檔案的簡單依賴管理器。

  • CMake :跨平臺的免費開源軟體用於管理軟體使用獨立編譯的方法進行構建的過程。

  • CPM:基於CMake和Git的C++包管理器

  • FASTBuild:高效能,開源的構建系統,支援高度可擴充套件性的編譯,緩衝和網路分佈。

  • Ninja :專注於速度的小型構建系統

  • Scons :使用Python scipt 配置的軟體構建工具

  • tundra :高效能的程式碼構建系統,甚至對於非常大型的軟體專案,也能提供最好的增量構建次數。

  • tup:基於檔案的構建系統,用於後臺監控變化的檔案。4 k1 G+ r4 h4 m5 m- e9 r

靜態程式碼分析

  • 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 :來自維基百科的靜態程式碼分析工具列表

:C++是在C語言的基礎上開發的一種集面向物件程式設計、泛型程式設計和過程化程式設計於一體的程式語言。應用較為廣泛,是一種靜態資料型別檢查的,支援多重程式設計的通用程式設計語言。

關於 C++ 框架、庫和資源的一些彙總列表,由 fffaraz發起和維護。

內容包括:標準庫、Web應用框架、人工智慧、資料庫、圖片處理、機器學習、日誌、程式碼分析等。

標準庫

  • C++ Standard Library:是一系列類和函式的集合,使用核心語言編寫,也是C++ISO自身標準的一部分。

  • Standard Template Library:標準模板庫

  • C POSIX library : POSIX系統的C標準庫規範

  • ISO C++ Standards Committee :C++標準委員會

框架

C++通用框架和庫 8 @2 K3 w2 H. W4 g4 ~, A3 t

  • 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框架,程式語言集,用於建立人工智慧應用程式的多用途軟體系統。; o3 D( Q+ A' [% I4 Y! X3 m

非同步事件迴圈

  • Boost.Asio:用於網路和底層I/O程式設計的跨平臺的C++庫。

  • libev :功能齊全,高效能的時間迴圈,輕微地仿效libevent,但是不再像libevent一樣有侷限性,也修復了它的一些bug。

  • libevent :事件通知庫

  • libuv :跨平臺非同步I/O。

音訊

音訊,聲音,音樂,數字化音樂庫 - S, c$ _! u4 |6 d

  • FMOD :易於使用的跨平臺的音訊引擎和音訊內容的遊戲創作工具。

  • Maximilian :C++音訊和音樂數字訊號處理庫

  • OpenAL :開源音訊庫—跨平臺的音訊API

  • Opus:一個完全開放的,免版稅的,高度通用的音訊編解碼器

  • Speex:免費編解碼器,為Opus所廢棄

  • Tonic: C++易用和高效的音訊合成

  • Vorbis: Ogg Vorbis是一種完全開放的,非專有的,免版稅的通用壓縮音訊格式。

生態學

生物資訊,基因組學和生物技術 8 e L t7 X6 l0 B

  • libsequence:用於表示和分析群體遺傳學資料的C++庫。

  • SeqAn:專注於生物資料序列分析的演算法和資料結構。

  • Vcflib :用於解析和處理VCF檔案的C++庫

  • Wham:直接把聯想測試應用到BAM檔案的基因結構變異。

壓縮

壓縮和歸檔庫 $ X/ Y( n+ t8 q( y' h

  • 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歸檔的讀許可權。8 Q3 I* D8 w1 T; {/ z. m) Y! b

併發性

併發執行和多執行緒

  • 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++向量表示式模板庫。( q; S+ I5 t- X' L6 q

容器

  • 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驅動程式和工具 % ^0 S% {& R- n+ o, \" e: G$ C

  • hiberlite :用於Sqlite3的C++物件關係對映

  • Hiredis: 用於Redis資料庫的很簡單的C客戶端庫

  • LevelDB: 快速鍵值儲存庫

  • LMDB:符合資料庫四大基本元素的嵌入鍵值儲存

  • MySQL++:封裝了MySql的C API的C++ 包裝器

  • RocksDB:來自Facebook的嵌入鍵值的快速儲存

  • SQLite:一個完全嵌入式的,功能齊全的關係資料庫,只有幾百KB,可以正確包含到你的專案中。7 |" g. p7 `! y7 r: z( q" L p

除錯

除錯庫, 記憶體和資源洩露檢測,單元測試 5 s) J% x1 \$ j2 {

  • 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++單元測試框架) P3 h2 _. {2 k- S

遊戲引擎

  • 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和其他平臺建立應用程式8 [, _! Q; z1 E* v+ G

圖形

  • bgfx:跨平臺的渲染庫

  • Cairo:支援多種輸出裝置的2D圖形庫

  • Horde3D 一個小型的3D渲染和動畫引擎

  • magnum C++11和OpenGL 2D/3D 圖形引擎

  • Ogre 3D 用C++編寫的一個面向場景,實時,靈活的3D渲染引擎(並非遊戲引擎)

  • OpenSceneGraph 具有高效能的開源3D圖形工具包

  • Panda3D 用於3D渲染和遊戲開發的框架,用Python和C++編寫。

  • Skia 用於繪製文字,圖形和影象的完整的2D圖形庫

  • urho3d 跨平臺的渲染和遊戲引擎。* _; P4 t! Z0 N7 {

影象處理

  • 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++庫,處理有符號整數,有理數和浮點數。1 d" h7 l$ \( |+ @0 w: I

多媒體

  • GStreamer :構建媒體處理元件圖形的庫

  • LIVE555 Streaming Media :使用開放標準協議(RTP/RTCP, RTSP, SIP) 的多媒體流庫

  • libVLC :libVLC (VLC SDK)媒體框架

  • QtAv:基於Qt和FFmpeg的多媒體播放框架,能夠幫助你輕而易舉地編寫出一個播放器

  • SDL :簡單直控媒體層

  • SFML :快速,簡單的多媒體庫5 l) w( z0 ^0 B& s/ M; w0 W

網路

  • 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 :高速,模組化的非同步通訊庫) G8 y5 ] `' H% Y' \9 C

物理學

動力學模擬引擎

  • Box2D:2D的遊戲物理引擎。

  • Bullet :3D的遊戲物理引擎。

  • Chipmunk :快速,輕量級的2D遊戲物理庫

  • LiquidFun:2D的遊戲物理引擎

  • ODE :開放動力學引擎-開源,高效能庫,模擬剛體動力學。

  • ofxBox2d:Box2D開源框架包裝器。

  • Simbody :高效能C++多體動力學/物理庫,模擬關節生物力學和機械系統,像車輛,機器人和人體骨骼。1 [; p3 p2 O$ G

機器人學

  • 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 :免費開源的視訊壓縮格式。- ?) w7 z, {( ^: K; r0 p4 X

虛擬機器

  • 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 " X, R+ J4 `: R: J

  • 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驗證解析器。. b) }& [& u/ J0 J

多項混雜一些有用的庫或者工具,但是不適合上面的分類,或者還沒有分類。

  • 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++包裝器。5 ?& A6 ?( G: K: L& \

軟體用於建立開發環境的軟體 , S/ c4 Q/ w) J5 K) d' v 編譯器

  • Clang :由蘋果公司開發的

  • GCC:GNU編譯器集合

  • Intel C++ Compiler :由英特爾公司開發

  • LLVM :模組化和可重用編譯器和工具鏈技術的集合

  • Microsoft Visual C++ :MSVC,由微軟公司開發

  • Open WatCom :Watcom,C,C++和Fortran交叉編譯器和工具

  • TCC :輕量級的C語言編譯器

線上編譯器

  • codepad :線上編譯器/直譯器,一個簡單的協作工具

  • CodeTwist:一個簡單的線上編譯器/直譯器,你可以貼上的C,C++或者Java程式碼,線上執行並檢視結果

  • coliru :線上編譯器/shell, 支援各種C++編譯器

  • Compiler Explorer:互動式編譯器,可以進行彙編輸出

  • CompileOnline:Linux上線上編譯和執行C++程式

  • Ideone :一個線上編譯器和除錯工具,允許你線上編譯原始碼並執行,支援60多種程式語言。 l$ h5 B( B# H. q7 Q- ^1 }

偵錯程式

  • Comparison of debuggers :來自維基百科的偵錯程式列表

  • GDB :GNU偵錯程式

  • Valgrind:記憶體除錯,記憶體洩露檢測,效能分析工具。

整合開發環境(IDE)

  • 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的根據你敲的程式碼快速模糊搜尋並進行程式碼補全的引擎。1 r) M3 D" I( x, ?/ ^+ U

構建系統

  • Bear :用於為clang工具生成編譯資料庫的工具

  • Biicode:基於檔案的簡單依賴管理器。

  • CMake :跨平臺的免費開源軟體用於管理軟體使用獨立編譯的方法進行構建的過程。

  • CPM:基於CMake和Git的C++包管理器

  • FASTBuild:高效能,開源的構建系統,支援高度可擴充套件性的編譯,緩衝和網路分佈。

  • Ninja :專注於速度的小型構建系統

  • Scons :使用Python scipt 配置的軟體構建工具

  • tundra :高效能的程式碼構建系統,甚至對於非常大型的軟體專案,也能提供最好的增量構建次數。

  • tup:基於檔案的構建系統,用於後臺監控變化的檔案。4 k1 G+ r4 h4 m5 m- e9 r

靜態程式碼分析

  • 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 :來自維基百科的靜態程式碼分析工具列表

  • 文末也給大家,分享主要有C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協程,DPDK技術,面試技巧方面的資料技術討論。

  •  

  • 感興趣的朋友可以加群:8