-
1 # 工控程式設計
-
2 # dlrowolleh
如果想要了解c語言的開源庫的話,其實可以直接從github上搜一下就可以找到很多,這裡介紹個地址
https://github.com/kozross/awesome-c
裡面的分類很全,一些常用的c語言庫都收錄了。
像是redis,mysql,nginx,這種大名鼎鼎c程式我就不說了,我這裡簡單介紹下,我曾經用過的幾個C跨平臺開源庫吧
1.libuv
http://libuv.org
這個是非同步跨平臺的io庫,與之類似的還有libevent,libuv作為nodejs的底層實現庫,無論在使用方便程度上,還是效能和跨平臺整合方面都做的非常不錯,我平常做一些跨平臺的網路通訊什麼的都會使用這個庫,在android,ios,windows,linux中可以比較容易的編譯和執行。
2.mongoose
https://github.com/cesanta/mongoose
這是個非常強大的跨平臺c網路通訊庫,只需要一個.h和一個.c檔案就可以直接整合到你的專案中,使用起來非常方便,特別是你開發的程式需要對外提供http的webapi,或者做一個簡單的http檔案伺服器提供靜態web瀏覽,都能簡單的幾行程式碼實現。它的缺點就是效能一般,通訊層是用select實現,能夠處理的連線數有限,但是如果僅僅是用在物聯網裝置上,或者只是本機或區域網內幾臺機器之間進行通訊,那完全是可行的。同樣,程式碼可以在android,ios,windows,linux上編譯執行透過。
3.duktape
https://duktape.org/
這是個嵌入式的跨平臺js引擎,也是隻需要一個.c和一個.h檔案就可以整合到你的專案中。對js標準的支援也非常不錯,完整的支援ES5和部分ES6。我就用mongoose和duktape組合開發過一個簡單的web服務框架,一直比較穩定的執行在一個商業專案中。另外由於duktape也可以很方便的整合到android和ios專案中,如果業務邏輯很多都用js寫的話,可以非常方便的實現程式碼的熱更新。
4.libcurl
https://curl.haxx.se/libcurl/
這個我確定應該大多數c開發者都熟悉,涉及http客戶端的請求呼叫,基本上都離不開這個庫。
5.mbedtls
https://tls.mbed.org/
一個嵌入式的tls庫,可以和libcurl或者mongoose整合在一起提供https的支援
6.sqlite
https://sqlite.org
客戶端的嵌入式資料庫,android和ios客戶端開發可能再熟悉不過了,如果想在客戶端使用資料庫,確實是不二的選擇。
回覆列表
網路上的開源庫,還是很多的。
優秀的國外的居多。
沒用到的不瞭解,有用到的這裡列一列。
影片解析方面的,vlc。
介面美化方面的,duilib。
pdf閱讀器方面的,mupdf。
cad繪圖方面的,librecad。
檔案壓縮方面的,zlib。
視覺處理方面的,opencv。
就用過這麼多啦。我是搞工業控制的,一般都與硬體打交道,涉及的庫很少。