我們有一個項目需要連接libcurl
和libxml2
以及其他庫。我們似乎有管理這些depencies兩個基本策略:可以假定哪些依賴關係可以安裝在構建機器上?
要求每個開發人員安裝下的「正常」位置,例如那些庫
/usr/lib
或將這些庫的源文件包含在項目源代碼樹的專用文件夾下。
方法1要求每個人都確保這些庫安裝在他們的系統上,但似乎是許多開源項目所使用的方法。在這樣的項目中,構建將檢測到這些庫缺失並將失敗。
方法2可能會使項目樹在某些情況下難以管理,並使編譯時間更長。另外,這種方法顯然可能會被採用太多。例如,我不會把編譯器放在項目樹下(對吧?)。
什麼是外部依賴的最佳實踐?可以/應該要求每個開發人員安裝某些庫來構建項目嗎?或者認爲在項目樹中包含所有的依賴關係會更好?