學習初期最難找的就是找學習資料了,本貼精心彙總了一些嵌入式相關資源,包括但不限于程式設計語言、單片機、開源項目、物聯網、作業系統、Linux、計算機等資源,并且在不斷地更新中,緻力于打造全網最全的嵌入式資料庫。有好的嵌入式相關資源的朋友歡迎做貢獻,利人利己。
收錄公開資料僅為了友善大家進行學習。如果你認為本倉庫的一些檔案侵犯了您的權益,請 向我回報 。我将會從倉庫中徹底清除這些檔案。
以下為最新資料彙總:
原文網址:
gitee:https://gitee.com/zhengnianli/EmbedSummary
github:https://github.com/zhengnianli/EmbedSummary
1、OS
鴻蒙OS: 一款面向全場景的開源分布式作業系統。
RT-Thread:一款小而美的物聯網作業系統。
TencentOS tiny:一款面向物聯網領域開發的實時作業系統。
freertos: 一個輕量級的作業系統。
µC/OS :一個功能齊全的嵌入式作業系統。
Azure RTOS:Azure RTOS 是一個嵌入式開發套件。
eventos-nano:一個超輕量級嵌入式開發架構,事件驅動,占用資源小,可運用于各型單片機。
zephyr:Zephyr 是 Linux 基金會推出的一個适用于物聯網的小型可伸縮的實時作業系統。
mbed-os :ARM自己打造、主打IoT的一整套軟體解決方案 。
BabyOS: 專為MCU項目開發提速的代碼架構 。
LuatOS : LuatOS是運作在嵌入式硬體的實時作業系統,隻需要少量記憶體的flash空間就能運作,使用者編寫lua代碼就可完成各種功能。
Contiki-OS: 一個小型的,開源的,極易移植的多任務作業系統。
DJYOS: 都江堰作業系統。
klite : 簡潔易用的嵌入式作業系統核心。
lmosem : 一個完全從第一行引導代碼開始編寫,基于ARM平台,支援多程序、多CPU、記憶體管理、檔案與裝置管理的全32位作業系統核心。
freenos:FreeNOS微核心作業系統。
ros:機器人作業系統。
openwrt:openwrt文檔。
cola_os:300行代碼實作多任務管理的OS。
MS-RTOS: Micro Safe RTOS 。
更多資源敬請期待…
2、實用庫 / 架構
ametal或ametal:AMetal是晶片級的裸機軟體包,定義了跨平台的通用接口。
Melon:一個用于簡化開發的 C 架構庫。
zlog:一個高可靠性、高性能、純C日志函數庫。
EasyLogger:一款超輕量級、高性能的 C/C++ 日志庫。
Smartlink:Linux上實作的smartconfig。
airkissOpen :騰訊airkiss協定解析庫 。
CodeBrick:一種無OS的MCU實用軟體管理系統。
RIL:一款專門為嵌入式平台開發的無線通信子產品(GSM/GPRS/CatM1/NB)管理架構。
cJSON:一個基于C語言的輕量級的JSON解析庫。
jsmn:一個小巧的基于C語言的JSON解析庫。
inih: C 語言編寫的 INI 檔案解析器。
MultiTimer : 一個軟體定時器擴充子產品。
MultiButton: 一個小巧簡單易用的事件驅動型按鍵驅動子產品。
SmartTimer : 一個輕量級的基于STM32的定時器排程器 。
FlexibleButton:一個基于标準 C 語言的小巧靈活的按鍵處理庫。
CmBacktrace : 一款針對 ARM Cortex-M 系列 MCU 的錯誤代碼自動追蹤庫。
EasyLogger:一款超輕量級、高性能的 C/C++ 日志庫。
limlog :一款超輕量級、高性能的 C/C++ 日志庫。
NanoLog :一款超輕量級、高性能的 C/C++ 日志庫。
EasyFlash:一款開源的輕量級嵌入式Flash存儲器庫 。
SFUD:一款開源的串行 SPI Flash 通用驅動庫。
lw_oopc:輕量級的C語言面向對象程式設計架構。
PLOOC:受保護的低開銷面向對象程式設計。
cmd-parser:一個非常簡單好用的指令解析器。
mqttclient:一個省資源、高穩定的MQTT用戶端。
NorthFrame :一個單片機極簡圖形化狀态機架構 。
letter-shell:一個功能強大的嵌入式shell。
nr_micro_shell : shell for MCU,單片機指令行互動。
pigweed:谷歌開源的嵌入式目标庫(子產品)集合。
lwrb:一個輕量級通用環緩沖區管理器庫。
cQueue :使用ANSI C 編寫的消息隊列功能函數。
Unity:一個輕量級的、适合嵌入式的測試架構。
Embedded Unit: 是個純标準c建構的單元測試架構。
CuTest :一款微小的C語言單元測試框, 全部代碼加起來不到一千行。
cmockery: 谷歌C單元測試架構。
googletest:谷歌C++測試架構。
znfat :振南fat,國産嵌入式檔案系統方案 。
libu:一個C語言寫的多平台工具庫。
tbox:一個用c語言實作的跨平台開發庫。
toolkit:ToolKit是一套應用于嵌入式系統的通用工具包。
LWIP: 一個小型開源的TCP/IP協定棧 。
SQLite :一個開源的嵌入式關系資料庫。
OpenBLT:一種開源引導加載程式。
Linux Lab : Linux 核心實驗室,基于 Docker/Qemu 的極速 Linux 核心學習、開發和測試環境。
airkissOpen :騰訊airkiss協定解析庫 。
mbedtls :一個開源、便攜,易于使用,可讀的和靈活的SSL庫。
mosquitto或mosquitto(下載下傳速度快):一個開源的MQTT代理。
inih:C 語言編寫的 INI 檔案解析器。
QP:QP實時嵌入式架構。
MS-RTOS:Micro Safe RTOS 。
protobuf-c:protobuf-c。
eepromfs: 基于EEPROM的簡易類檔案的資料讀寫庫 。
gear-lib : 适用于IOT/嵌入式/網絡服務開發的C庫 。
mult_timer : 一個Linux下的超級精簡的多重定時器 。
EFSM : 是一個基于事件驅動的有限狀态機 。
EasyX:一個免費的圖形庫。
tbox:一個用c語言實作的跨平台開發庫。
sys/queue.h:用宏實作的常用資料結構。
nanomsg:一個實作了幾種“可擴充協定”的高性能通信庫。
thttpd:一個簡單,小型,可移植,快速且安全的HTTP伺服器。
boa:一個小巧高效的web伺服器。
FreeTpye :字型渲染庫。
qpc :一個開源的狀态機實作。
Quantum Leaps :狀态機組織。
ZBar :二維碼掃描工具和開發包.
FFmpeg :多媒體處理工具庫.
libnabo :是一個快速為低次元空間提供K最近鄰居算法庫。
DSAL:是一個經典的資料結構和算法庫。
FLINT :是一個數論庫,用C語言編寫,它包括一個非常快的多項式算法庫。
LibMMSeg:中文分詞軟體包 。
CDS:CDS是一個 C++ 模闆庫,包含 lock-free and fine-grained 算法。
hashlib++:是一個簡單易用的用來生成 checksum 算法。
libcstl:C語言編寫的一個通用的資料結構和常用的算法庫。
Botan:Botan 是一個 C++ 的加密算法庫。
CGAL:計算幾何算法庫。
MyMediaLite:是一個輕量級的多用途的推薦系統的算法庫。
cblas:提供c接口的blas庫,源碼通過f2c轉換為C語言。f2c官網。
clapack:提供c接口的lapack庫,源碼通過f2c轉換為C語言。
scalapack:提供并行運算的lapack庫,源碼用fortran編寫。
armadillo:線性代數運算庫,源碼用c++編寫。
openblas:針對intel cpu優化的blas庫。
mkl:擴充的且針對intel cpu優化的庫,包括快速傅立葉變換(FFT)、矢量數學庫。
eigen:C++寫的線性代數運算庫。
libjpeg:用libjpeg庫在LCD上顯示圖檔。
x264:x264開源的解碼編碼庫。
ws2812:ws2812驅動庫。
更多資源敬請期待…
3、GUI相關
GuiLite:大道至簡 - 5千行/僅頭檔案/全平台GUI庫 。
yoxios: 基于Linux開發的輕量級物聯網系統和硬體平台。
ToughGFX: 一個C++編寫的GUI軟體架構 。
emwin:一個老牌GUI庫。
littlevGL : 一個免費的開源圖形庫。
野牛 LittlevGL demo:基于野牛開發闆的 LittlevGL demo 程式 。
MonoGUI :一個黑白圖形使用者接口系統 。
MiniGUI: 一個快速、穩定、跨作業系統的GUI。
QT:跨平台的應用程式和使用者界面架構。
QT_Creator:QT_Creator下載下傳連結。
Gtk: 一個用于創造圖形使用者接口的圖形庫。
AWTK:是 ZLG 傾心打造的一套基于 C 語言開發的 GUI 架構 。
玲珑GUI:玲珑GUI教程頁。
std :一個嵌入式小型圖形庫。
CUGUI:為單片機寫的GUI ,支援字型,按鍵,圖檔,滑動條。
更多資源敬請期待…
4、項目 / 軟硬結合
ElectronBot:一個桌面級小機器人。
Planck-Pi:超迷你Linux開發闆。
qt_2019_ncov:基于Qt/C++實作的新冠肺炎疫情監控平台。
H7-TOOL_STM32H7_App :安富萊H7-TOOL 多功能開發工具。
the-little-bili-tv:基于esp32+lvgl8.0的哔哩哔哩小電視。
DAPLink/CMSIS DAP:一個調試器, 內建下載下傳、調試和USB虛拟序列槽。
Crazepony:Crazepony開源四軸飛行器。
MiniQ :一個迷你四軸飛行器。
LiPow-Firmware:基于STM32G0采用USB type-C供電的開源锂電池充電器。
Avem: 一個輕量級無人機飛控。
esp8266-lattice-clock:Esp8266多功能點陣時鐘。
SoftWareSerial:一個STM32 IO口模拟實作軟體序列槽程式。
序列槽ISP程式:一個stm32序列槽ISP程式。
DSO_Nano :一個手持示波器。
DSView: 一個跨平台的邏輯分析儀。
MCU-Development: 基于51、430、STM32F10X、STM32F407X、T4MC123G平台的各常見硬體子產品demo。
Arduino : 開源電子原型平台。
EWAHBoolArray: bitmap算法。
mcush:MCU shell。
DoST: Linux 下開發 STM32 。
Avem : 這是一個輕量級無人機飛控項目。
更多資源敬請期待…
5、資源 / 工具 / 網站 / 論壇
100ask download:百文網資料下載下傳中心。
armfly:安富萊/硬漢嵌入式論壇。
fire download:野火資料下載下傳中心。
openedv download:正點原子資料下載下傳中心。
野火:野火電子論壇。
正點:正點原子論壇。
小熊貓C++ IDE:跨平台、輕量易用的開源C/C++內建開發環境。
ST:ST中文社群。
訊為開發社群:北京訊為ARM開發社群。
訊為官網:訊為官網。
NXP社群:恩智浦論壇。
Linux:Linux核心官網。
Linux源碼:可線上閱讀Linux核心源碼。
Buildroot:buildroot源碼。
Debian:Debian官網。
Ubuntu:Ubuntu官網。
BOA官網:一個單任務 web 伺服器 ,可以移植到嵌入式平台。
荔枝派:荔枝派指南。
清華鏡像站:清華大學開源軟體鏡像站。
中科大鏡像站:中國科技大學鏡像站。
u-boot:u-boot源碼下載下傳頁面。
bear-pi:小熊派demo。
宅學部落:一個Linux、程式設計語言、核心、驅動開發學習網站。
單片機教程網:單片機基礎、設計執行個體、論壇。
GNU:GNU官網。
ChinaUnix:Linux/Unix相關。
PyQt5:PyQt5教程。
qter:QT開源社群。
git手冊:git學習手冊。
開源項目風格:Google 開源項目風格指南 (中文版)。
電子世家:一個電子類導航網站。
21ic:21IC中國電子網。
芯路恒電子:小梅哥部落格、FPGA論壇。
嵌入式開發者社群:創龍論壇。
micropython:micropython中文網。
泰曉科技:Linux相關。
電堂科技:STM32相關。
源代碼使用示例聚合器: 從超過100萬個開源項目搜尋CPP代碼示例。
KST-51 :《手把手教你學51單片機》 。
原子哥:專注電子技術教學。。
digoboy:地瓜派視訊網。
c.biancheng:C語言中文網。
open-c-book :《C語言程式設計透視》。
PyQt5:PyQt5線上教程。
open-shell-book:《Shell 程式設計範例》 。
software_unit_test: 《軟體單元測試入門與實踐》。
kerneltravel:Linux核心之旅。
蝸窩科技:慢下來,享受技術。
bookstack:書棧網。
wireshark:抓包工具下載下傳連結。
MobaXterm:一個好用的終端軟體。
Stduino: 一款面向32位處理器快速入門學習的內建開發平台 。
easyicon:一個免費圖示下載下傳網站。
codingdict:一個類似于菜鳥教程的程式設計類教程網站。
codingdict開源軟體:codingdict網站收集的各類開源軟體集合。
C經典示例:一些C語言的執行個體。
xmake:輕量級跨平台C/C++建構工具。
spacevim:一個子產品化的 Vim IDE。
vofa+:一個插件驅動的高自由度上位機。
聯合開發網:356萬個程式設計源碼資料
覓思文檔:私有雲筆記、雲文檔和知識庫系統。
aardio:易用性極強的動态語言。
OneNET SDK:OneNET SDK倉庫。
ros手冊:ros的官方手冊。
gnu的開源軟體:gnu的開源軟體
soft-and-hard:這是一個以物聯網項目為主方向分享web開發教程。
FireflyTeam :一個開放源代碼的倉庫。
python腳本:一些好用的python腳本。
C++ libraries:A list of open source C++ libraries.
Lindenis:An open source software for Lindenis SBC。
fast-line-following:一個快速尋線機器人的算法。
深度神經網絡可視化工具:深度神經網絡可視化工具。
Awesome-Embedded :彙聚了各種嵌入式相關的資源。
FreeModbus : FreeModbus是一款開源的Modbus協定棧,但是隻有從機開源。
更多資源敬請期待…
6、一些晶片原廠代碼倉庫
STMicroelectronics:意法半導體(ST)。
TI:德州儀器(TI)。
NXP:恩智浦(NXP)。
Freescale:飛思卡爾半導體(Freescale)。
hisilicon:海思。
rockchip:瑞芯微。
Samsung:三星。
Infineon:英飛淩。
analogdevicesinc:亞德諾半導體(ADI)。
MicrochipTech:微芯半導體(Microchip )。
NordicSemiconductor:北歐內建電路(Nordic)。
cypress-io:賽普拉斯半導體(Cypress)。
GD32:易兆創新(GD)。
GD32網盤::易兆創新(GD)網盤資料。
更多資源敬請期待…
7、物聯網、智能家居
Domoticz :一個開源的智能家居系統 。
Kaa IoT Platform:功能豐富的開放和高效的物聯網雲平台。
RT-Thread IoT SDK :基于RT-Thread IOT開發闆的各類例程。
從零打造物聯網:一份适合嵌入式開發人員學習的web開發教程。
更多資源敬請期待…
8、機器人相關 / 定位 / 視覺
RoboCar:機器人自動尋線、避障、建圖、導航、遙控版本/車載電腦版本路面分析,及交通路況識别的車輛輔助駕駛系統
ROS教程:機器人作業系統
slam:思岚科技。
9、推薦部落格 / 博文
嵌入式大雜燴周記 | 第 10 期 inih
嵌入式大雜燴周記 | 第 8 期 AMetal
嵌入式大雜燴周記 | 第 7 期 zlog
嵌入式大雜燴周記 | 第 6 期 FlexibleButton
嵌入式大雜燴周記 | 第 5 期 smartlink
嵌入式大雜燴周記 | 第 4 期 cola_os
嵌入式大雜燴周記 | 第 3 期 sys/queue.h
嵌入式大雜燴周記 | 第 2 期 llgui
嵌入式大雜燴周記 | 第 1 期 gear-lib
博文——Tslib移植與分析
下面計算機資源為網友
dianjixz
貢獻,感謝這位朋友。
計算機相關資源------持續更新中
1、 标準庫
C++标準庫,包括了STL容器,算法和函數等。
C++ Standard Library:是一系列類和函數的集合,使用核心語言編寫,也是C++ISO自身标準的一部分。
Standard Template Library:标準模闆庫
C POSIX library : POSIX系統的C标準庫規範
ISO C++ Standards Committee :C++标準委員會
2、 架構
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.
3、 人工智能
btsk :遊戲行為樹啟動器工具
Evolving Objects:基于模闆的,ANSI C++演化計算庫,能夠幫助你非常快速地編寫出自己的随機優化算法。
Neu:C++11架構,程式設計語言集,用于建立人工智能應用程式的多用途軟體系統。
4、 異步事件循環
Boost.Asio:用于網絡和底層I/O程式設計的跨平台的C++庫。
libev :功能齊全,高性能的時間循環,輕微地仿效libevent,但是不再像libevent一樣有局限性,也修複了它的一些bug。
libevent :事件通知庫
libuv :跨平台異步I/O。
5、音頻
音頻,聲音,音樂,數字化音樂庫
FMOD :易于使用的跨平台的音頻引擎和音頻内容的遊戲創作工具。
Maximilian :C++音頻和音樂數字信号處理庫
OpenAL :開源音頻庫—跨平台的音頻API
Opus:一個完全開放的,免版稅的,高度通用的音頻編解碼器
Speex:免費編解碼器,為Opus所廢棄
Tonic: C++易用和高效的音頻合成
Vorbis: Ogg Vorbis是一種完全開放的,非專有的,免版稅的通用壓縮音頻格式。
6、 生态學
生物資訊,基因組學和生物技術
libsequence:用于表示和分析群體遺傳學資料的C++庫。
SeqAn:專注于生物資料序列分析的算法和資料結構。
Vcflib :用于解析和處理VCF檔案的C++庫
Wham:直接把聯想測試應用到BAM檔案的基因結構變異。
7、 壓縮
壓縮和歸檔庫
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、并發性
并發執行和多線程
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++向量表達式模闆庫。
9、 容器
C++ B-tree :基于B樹資料結構,實作指令記憶體容器的模闆庫
Hashmaps: C++中開放尋址哈希表算法的實作
10、 密碼學
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的加密算法
11、 資料庫
資料庫,SQL伺服器,ODBC驅動程式和工具
hiberlite :用于Sqlite3的C++對象關系映射
Hiredis: 用于Redis資料庫的很簡單的C用戶端庫
LevelDB: 快速鍵值存儲庫
LMDB:符合資料庫四大基本元素的嵌入鍵值存儲
MySQL++:封裝了MySql的C API的C++ 包裝器
RocksDB:來自Facebook的嵌入鍵值的快速存儲
SQLite:一個完全嵌入式的,功能齊全的關系資料庫,隻有幾百KB,可以正确包含到你的項目中。
12、 調試
調試庫, 記憶體和資源洩露檢測,單元測試
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++單元測試架構
13、 遊戲引擎
Cocos2d-x :一個跨平台架構,用于建構2D遊戲,互動圖書,示範和其他圖形應用程式。
Grit :社群項目,用于建構一個免費的遊戲引擎,實作開放的世界3D遊戲。
Irrlicht :C++語言編寫的開源高性能的實時#D引擎
Polycode:C++實作的用于建立遊戲的開源架構(與Lua綁定)。
14、 圖形使用者界面
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和其他平台建立應用程式
15、 圖形
bgfx:跨平台的渲染庫
Cairo:支援多種輸出裝置的2D圖形庫
Horde3D 一個小型的3D渲染和動畫引擎
magnum C++11和OpenGL 2D/3D 圖形引擎
Ogre 3D 用C++編寫的一個面向場景,實時,靈活的3D渲染引擎(并非遊戲引擎)
OpenSceneGraph 具有高性能的開源3D圖形工具包
Panda3D 用于3D渲染和遊戲開發的架構,用Python和C++編寫。
Skia 用于繪制文字,圖形和圖像的完整的2D圖形庫
urho3d 跨平台的渲染和遊戲引擎。
16、 圖像處理
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計算機圖形學,圖像處理和可視化的開源免費軟體系統。
17、 國際化
gettext :GNU `gettext’
IBM ICU:提供Unicode 和全球化支援的C、C++ 和Java庫
libiconv :用于不同字元編碼之間的編碼轉換庫
18、 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解析庫
19、 日志
Boost.Log :設計非常子產品化,并且具有擴充性
easyloggingpp:C++日志庫,隻包含單一的頭檔案。
Log4cpp :一系列C++類庫,靈活添加日志到檔案,系統日志,IDSA和其他地方。
templog:輕量級C++庫,可以添加日志到你的C++應用程式中
20、 機器學習
Caffe :快速的神經網絡架構
CCV :以C語言為核心的現代計算機視覺庫
mlpack :可擴充的C++機器學習庫
OpenCV:開源計算機視覺庫
Recommender:使用協同過濾進行産品推薦/建議的C語言庫。
SHOGUN:Shogun 機器學習工具
sofia-ml :用于機器學習的快速增量算法套件
21、 數學
Armadillo :高品質的C++線性代數庫,速度和易用性做到了很好的平衡。文法和MatlAB很相似
blaze:高性能的C++數學庫,用于密集和稀疏算法。
ceres-solver :來自谷歌的C++庫,用于模組化和解決大型複雜非線性最小平方問題。
CGal: 高效,可靠的集合算法集合
cml :用于遊戲和圖形的免費C++數學庫
Eigen :進階C++模闆頭檔案庫,包括線性代數,矩陣,向量操作,數值解決和其他相關的算法。
GMTL:數學圖形模闆庫是一組廣泛實作基本圖形的工具。
GMP:用于個高精度計算的C/C++庫,處理有符号整數,有理數和浮點數。
22、 多媒體
GStreamer :建構媒體處理元件圖形的庫
LIVE555 Streaming Media :使用開放标準協定(RTP/RTCP, RTSP, SIP) 的多媒體流庫
libVLC :libVLC (VLC SDK)媒體架構
QtAv:基于Qt和FFmpeg的多媒體播放架構,能夠幫助你輕而易舉地編寫出一個播放器
SDL :簡單直控媒體層
SFML :快速,簡單的多媒體庫
23、 網絡
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 :高速,子產品化的異步通信庫
24、 實體學
動力學仿真引擎
Box2D:2D的遊戲實體引擎。
Bullet :3D的遊戲實體引擎。
Chipmunk :快速,輕量級的2D遊戲實體庫
LiquidFun:2D的遊戲實體引擎
ODE :開放動力學引擎-開源,高性能庫,模拟剛體動力學。
ofxBox2d:Box2D開源架構包裝器。
Simbody :高性能C++多體動力學/實體庫,模拟關節生物力學和機械系統,像車輛,機器人和人體骨骼。
25、 機器人學
MOOS-IvP :一組開源C++子產品,提供機器人平台的自主權,尤其是自主的海洋車輛。
MRPT:移動機器人程式設計工具包
PCL :點雲庫是一個獨立的,大規模的開放項目,用于2D/3D圖像和點雲處理。
Robotics Library (RL): 一個獨立的C++庫,包括機器人動力學,運動規劃和控制。
RobWork:一組C++庫的集合,用于機器人系統的仿真和控制。
ROS :機器人作業系統,提供了一些庫和工具幫助軟體開發人員建立機器人應用程式。
26、 科學計算
FFTW :用一維或者多元計算DFT的C語言庫。
GSL:GNU科學庫。
27、 腳本
ChaiScript :用于C++的易于使用的嵌入式腳本語言。
Lua :用于配置檔案和基本應用程式腳本的小型快速腳本引擎。
luacxx:用于建立Lua綁定的C++ 11 API
SWIG :一個可以讓你的C++代碼連結到JavaScript,Perl,PHP,Python,Tcl和Ruby的包裝器/接口生成器
V7:嵌入式的JavaScript 引擎。
V8 :谷歌的快速JavaScript引擎,可以被嵌入到任何C++應用程式中。
28、 序列化
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開發。
29、 視訊
libvpx :VP8/VP9編碼解碼SDK
FFmpeg :一個完整的,跨平台的解決方案,用于記錄,轉換視訊和音頻流。
libde265 :開放的h.265視訊編解碼器的實作。
OpenH264:開源H.364 編解碼器。
Theora :免費開源的視訊壓縮格式。
30、 虛拟機
CarpVM:C中有趣的VM,讓我們一起來看看這個。
MicroPython :旨在實作單片機上Python3.x的實作
TinyVM:用純粹的ANSI C編寫的小型,快速,輕量級的虛拟機。
31、 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++庫。
32、 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驗證解析器。
33、 多項混雜
一些有用的庫或者工具,但是不适合上面的分類,或者還沒有分類。
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++包裝器。
34、 軟體
用于建立開發環境的軟體
aardio : arrdio是一個能在windows系統中快速建立一個應用程式的一門語言,也是一個超級膠水工具。你可以用python、java、C、C#、javastrip、PHP等數值的程式設計語言結合arrdio幾分鐘就可以開發一款帶界面的桌面應用程式。你可以用html的方式來建立一個界面或者用其他界面庫來建立一個界面。一切都是你說了算!超小的軟體體積,超快的建立速度!
cmder: cmder是一個增強型指令行工具,不僅可以使用 windows 下的所有指令,更爽的是可以使用linux的指令,shell指令。windows 下的軟體.
35、 編譯器
C/C++編譯器清單
Clang :由蘋果公司開發的
GCC:GNU編譯器集合
Intel C++ Compiler :由英特爾公司開發
LLVM :子產品化和可重用編譯器和工具鍊技術的集合
Microsoft Visual C++ :MSVC,由微軟公司開發
Open WatCom :Watcom,C,C++和Fortran交叉編譯器和工具
TCC :輕量級的C語言編譯器
36、 線上編譯器
線上C/C++編譯器清單
codepad :線上編譯器/解釋器,一個簡單的協作工具
CodeTwist:一個簡單的線上編譯器/解釋器,你可以粘貼的C,C++或者Java代碼,線上執行并檢視結果
coliru :線上編譯器/shell, 支援各種C++編譯器
Compiler Explorer:互動式編譯器,可以進行彙編輸出
CompileOnline:Linux上線上編譯和執行C++程式
Ideone :一個線上編譯器和調試工具,允許你線上編譯源代碼并執行,支援60多種程式設計語言。
37、 調試器
C/C++調試器清單
Comparison of debuggers :來自維基百科的調試器清單
GDB :GNU調試器
Valgrind:記憶體調試,記憶體洩露檢測,性能分析工具。
38、 內建開發環境(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的根據你敲的代碼快速模糊搜尋并進行代碼補全的引擎。
39、 建構系統
Bear :用于為clang工具生成編譯資料庫的工具
Biicode:基于檔案的簡單依賴管理器。
CMake :跨平台的免費開源軟體用于管理軟體使用獨立編譯的方法進行建構的過程。
CPM:基于CMake和Git的C++包管理器
FASTBuild:高性能,開源的建構系統,支援高度可擴充性的編譯,緩沖和網絡分布。
Ninja :專注于速度的小型建構系統
Scons :使用Python scipt 配置的軟體建構工具
tundra :高性能的代碼建構系統,甚至對于非常大型的軟體項目,也能提供最好的增量建構次數。
tup:基于檔案的建構系統,用于背景監控變化的檔案。
40、 靜态代碼分析
提高品質,減少瑕疵的代碼分析工具清單
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 :來自維基百科的靜态代碼分析工具清單
41、 linux 實用工具
picocom: linux 下的一個好用的序列槽終端.
w3m : 終端浏覽器,真正的程式員就該使用指令行來浏覽網頁。
The Fuck : 在終端下是不是經常輸錯指令,搞得自己心煩意亂,The Fuck 是一款了不起的工具,幫你徹底解決這個問題,當你輸錯指令後,隻要輸入 fuck 指令,它會幫你自動糾正錯誤,精彩之極!
tldr : tldr 是 Too long, Don’t read 的縮寫,可以幫助你快速檢視常用指令的使用執行個體,比如 tar 指令,那後面一長串參數誰記得清呢?當然,linux 大佬除外。
fzf : fzf 是一款支援模糊搜尋的互動式工具,可以用來查找任何清單内容,包括檔案、Git 分支、程序等。
fd : 簡單、快速、好用,用于替換 find 的搜尋工具。
exa : 用來替換 ls 指令的現代化工具。
nnn : nnn (n³) 是一個功能齊全的終端檔案管理器,速度非常快且幾乎 0 配置,也是一個非常不錯的選擇。
powerline : 終端本身是高效的,但有時也略顯乏味,使用 powerline 可以為終端加上強大的 狀态欄,比如在 vim 中顯示目前狀态,在打開 git 目錄時顯示目前分支等等。
dtrx 有了這個工具你基本再也不用記住如何在linux上面解壓各種字尾的檔案了,什麼tar.gz,tgz,xz,bz2,zip.rar等通通搞定,這是一個python工具.
autojump : 記憶進過的檔案夾,下次可用 j + 檔案夾名 直接跳進, 很友善.軟體安裝完後輸入下面指令生效終端 (echo “”# autojump\nsource /usr/share/autojump/autojump.bash" >> ~/.bashrc)
rebash : 腳本庫/架構。特點:進口,例外,檔案測試…
shutit : 基于bash和pexpect的自動化架構
dispatch : 50行可移植shell腳本中的指令行參數解析器。
bashful : 一個庫的集合,以簡化編寫Bash腳本
ansi : 在純bash中的ANSI轉義碼 - 更改文本顔色,定位光标,等等
history :非常簡單,尤其是在你依賴于複制使用過的指令時,這個指令特别有用。
sort, uniq:排序去重。
awk, grep, sed:文本處理神器。
jq,指令行的json查詢和格式化工具,适合檢視rest接口的輸出
strace,列印出程序調用了哪些系統調用。
objdump,列印目标碼和反彙編結果
transfer.sh :可通過簡單的指令行來快速完成檔案共享操作
stegify : 一款神奇的指令行工具,能将任意檔案隐藏到圖檔裡面。
Httpie一個 HTTP 指令行用戶端,使用起來比 curl 更為友好,并支援輸出 JSON、文法高亮等特性,為開發者呈現更為直覺的 UI,與伺服器間的調試體驗也更為人性化。
PM2 :用以在背景運作和管理程序
SpaceVim:這是一個 vim 插件,使你的 Vim 變成帶代碼自動補全等功能的更加強大的代碼編輯器!
axel:多線程斷點下載下傳工具,非常好用。例如下圖中這樣,指定了 8 個線程同時下載下傳。
nmon:它能夠幫你進行電腦的性能監控,包括 CPU,記憶體,磁盤 IO,網絡 IO,并且界面很炫酷,是不是很像黑客,快去試試吧 nmon for Linux | Main
Alex:它是一個簡單但很有用的小工具。适用于明文文本或者格式為 Markdown 或 HTML 的文檔。Alex 會對“性别偏好、極端主義、種族相關、宗教,或者文章中其他不平等的措辭”産生警告。如果你想要試試看 Alex,這裡有一個線上 demo;
GNU Aspell:它能夠互動式地檢測文本文檔,能高亮顯示拼寫錯誤,還能在拼寫錯誤的上方提供正确的拼寫建議。Aspell 在進行拼寫檢查的時候,同樣能夠忽略許多文法标記;
Proselint:它是一款全能的實時檢查工具。它會找出行話、大話、不正确日期和時間格式、濫用的術語等等。它也很容易運作并忽略文本中的标記;
WordGrinder:它是一款使用起來很簡單,但擁有足夠的編寫和釋出功能的文字編輯器。它支援基本的格式和樣式,并且你可以将你的文字以 Markdown、ODT、LaTeX 或者 HTML 等格式導出;
cloc: 用來統計代碼行數,統計結果比較分類比較詳細,支援大部分程式設計語言。
tldr: 如果你經常不想詳讀man文檔,那麼你應該試試這個小工具。
cppman:C++ 98/11/14 手冊查詢 for Linux/MacOS
icdiff:分屏顯示 diff
mcedit:終端下面的 NotePad++
owncloud:DropBox 的開源替代品,提供指令行用戶端 owncloudcmd
pm:在 bash / zsh 中迅速切換項目目錄
ncdu:可視化的空間分析程式,你發現有人把 /home 空間撐爆了,影響了大家的工作,你憤怒了一層層的 du,一層層的 cd,整個過程就像刨垃圾堆一樣的惡心,後來發現了 ncdu 這個基于 ncurses 的空間分析程式:
glances:更強大的 htop / top 代替者 htop 代替 top,glances 代替 htop:
mc :内容浏覽/預覽
ranger:内容浏覽/預覽另一款内容預覽軟體,界面沒有 mc 那麼漂亮,标記拷貝也沒它強,但是預覽功能做的很不錯,如果你習慣 vim 鍵位的話,你會發現ranger有些地方比 mc做的好不少:
dstat:vmstat 代替者,可能不少人都用過,但是本問題下好像沒人提?
cheat:指令行筆記,就是各種 cheat sheet ,比如經常搞忘 redis 指令的話,你可以建立 ~/.cheat/redis 這個檔案,寫一些内容,比如:
multitail:多重 tail,通常你不止一個日志檔案要監控,怎麼辦?終端軟體裡開多個 tab 太占地方,可以試試這個工具:
bro:以用例為主的幫助系統,類似于man,但是對新手友好.
http.server : python中的一個本地小型 http 伺服器,可以用于區域網路傳輸檔案.但沒有上傳功能.
SimpleHTTPServerWithUpload.py : python中的一個本地小型 http 伺服器,可以用于區域網路傳輸檔案.有上傳功能.有 python2 和 python3 兩個版本.
參考連接配接:
幹貨| C++ 資源、架構大全,推薦收藏
https://www.zhihu.com/question/59227720/answer/286665684
https://www.zhihu.com/question/59227720/answer/578875058
https://www.zhihu.com/question/59227720/answer/163933473
https://www.zhihu.com/question/59227720/answer/163966430