每個專案都或多或少的對第三方庫有依賴關係,但如何把握多少這個度一直是我認為比較棘手的問題。依賴少了,有種閉門造車,從輪子開始的感覺;而依賴多了,又會陷入專案構建,bug查詢,庫穩定性等諸多的問題。本文根據自己在c++專案方面的心得做點總結:
依賴原則:
a. 依賴越少越好;
c. 依賴穩定的庫,可以通過版本號判別,1.0以後的版本開始趨於穩定;
d. 優先使用功能全面的庫,這樣可以減少庫依賴的數量,如:boost, apache apr;
e. 優先使用可移植的庫,便於以後專案的移植;
f. 使用開源庫,可以自己修正第三方庫的bug;
個人習慣:
a. 依賴的庫:stl+(stlplus/boost/apr)+cppunitlite+log4cpp+qt/wtl+xdlib
編譯器自帶庫+功能全面/可移植的通用庫+單元測試庫+日誌記錄庫+介面庫+個人開發庫;
b. 依賴庫的位置:將所有依賴庫放入devlib目錄,如只有單個專案依賴,則跟src目錄同級;如有多個專案依賴,則與專案平級,專案中對庫的依賴路徑都使用相對路徑;
對開源專案依賴庫的分析:
a. redis: 不依賴任何庫,自己實現網路事件,日誌庫;
b. activemq-cpp: 只依賴於其兄弟專案的apache apr庫,自己實現執行緒操作,同步控制;庫依賴路徑使用環境變數:$(platform_sdk)\include"$(cppunit_dist)\include"$(apr_dist)\include;
Spring FrameWork 總結 依賴
package x.y public class foo beanfactory對於它所管理的bean提供兩種注入依賴方式 實際上它也支援同時使用構造器注入和setter方式注入依賴 需要注入的依賴將儲存在beandefinition中,它能根據指定的propertyeditor實現將屬性從一種格式...
檢視安卓專案gradle庫依賴,解決依賴庫衝突問題
執行命令 gradlew 模組名 dependencies.gradlew 模組名 dependencies dep.log下面這張圖是我乙個工程裡執行結果的篩選部分.背景 工程編譯報錯 program type already present androidx.versionedparcelabl...
多動態庫依賴
0.介紹 0.1 靜態庫 靜態庫是一些目標檔案的集合,通常為字尾為.o 的檔案,通過ar 工具打包而成,命名 格式為lib a 其中 為給定的靜態庫檔名。在建立可執行程式的過程中,靜態庫同時被鏈結到程式 被主程式呼叫的函式目標檔案連 同主程式組合成單一的可執行程式。靜態庫只在程式鏈結時起作用,最終的...