java生成動態(tài)庫so 為什么有很多出名開源的C/C 方面的高性能網(wǎng)絡(luò)庫,比如libevent,boost-asio,有些企業(yè)還要自己寫?
為什么有很多出名開源的C/C 方面的高性能網(wǎng)絡(luò)庫,比如libevent,boost-asio,有些企業(yè)還要自己寫?我認(rèn)為,是構(gòu)建輪子還是直接使用開源庫,很大程度上取決于部門負(fù)責(zé)人的個人喜好。曾幾何時
為什么有很多出名開源的C/C 方面的高性能網(wǎng)絡(luò)庫,比如libevent,boost-asio,有些企業(yè)還要自己寫?
我認(rèn)為,是構(gòu)建輪子還是直接使用開源庫,很大程度上取決于部門負(fù)責(zé)人的個人喜好。曾幾何時,c開發(fā)人員熱衷于重新構(gòu)建輪子,那么為什么有些企業(yè)要自己編寫呢?我在項目開始時不知道這個庫的存在,我不想以后再介紹它。
2)許多第三方庫依賴于許多其他第三方庫。要引進a館,就得引進B館、C館、D館,這無疑增加了院系成員的學(xué)習(xí)成本。
3)第三方開源庫通常會頻繁更新。如果你知道有一個bug,你想更新它嗎?基礎(chǔ)庫的更新無疑會花費更多的開發(fā)時間和測試時間。
4)使項目整體可控。一旦引入的開放源代碼庫出現(xiàn)問題并且項目團隊不熟悉它,這將是災(zāi)難性的。
5)現(xiàn)有開源庫過于復(fù)雜,學(xué)習(xí)成本高,團隊成員水平參差不齊。
最后,附上一本我前段時間讀過的書。
本文是作者《一個程序員的奮斗史》悟空問答原創(chuàng)文章,未經(jīng)允許轉(zhuǎn)載,抄襲將被追究
so是什么文件?
所以file是Linux下的程序函數(shù)庫,即編譯后的代碼和數(shù)據(jù),可以被其他程序使用。
1. 所以文件類似于。DLL文件。
2. 一般來說,動態(tài)鏈接庫通常被稱為動態(tài)鏈接庫,它是用C或C語言編寫的,與Java相比,它通常使用類文件(字節(jié)碼)。
3. 所以Linux下的文件不能直接運行。一般來說,。所以文件被稱為共享庫。
4. 如何使用so文件
(1)編譯動態(tài)庫。這里有一個頭文件:soTest。H、 三個。C文件:testa.C、test.C、testC.C。我們將這些文件編譯成一個動態(tài)庫libtest.so文件.
命令:$GCC test a.c test b.c test c.c-fPIC-shared-olibtest.so文件沒有此標(biāo)志,外部程序無法連接。相當(dāng)于一個可執(zhí)行文件。
(2)有一個程序源文件測試。C語言與動態(tài)庫libtest.so文件鏈接生成執(zhí)行文件測試:
命令:$GCC test。命令:$lddtest executetest,您可以看到它如何調(diào)用動態(tài)庫中的函數(shù)。