簡體   English   中英

如何在c ++中管理依賴項

[英]How to manage dependencies in c++

我有一個包含大量獨立模塊(可執行文件和其他文件)的大型存儲庫,有些依賴於另一個模塊(並且依賴於不在repo中的第三方庫)。

我希望能夠在此存儲庫中只提取一個模塊,並能夠獨立構建它。

順便說一句 - 我在Linux和Windows環境中使用scons作為構建工具。

我在這個網站(以及更多)中看到有兩種解決此問題的方法:

  1. 在每個模塊存儲庫中創建目錄“dependency”或任何類似的名稱,並將此模塊所依賴的所有存儲庫設置為此目錄中的子存儲庫。

    問題:

    1. 它沒有解決我的SCM中沒有處理的第三方問題。
    2. 它使構建過程變得更慢
    3. 它的丑陋,在我的基礎項目目錄中有很多倍數。
  2. 創建“二進制存儲庫”或“構建工件存儲庫”並使用它來管理依賴關系。

對我來說這看起來是最好的解決方案,但我不明白如何實際做到這一點。

我看到nuget用於c#windows開發人員(還有很少的c ++,但只有在windows中)和ivy / maven用於java開發人員,但是找不到任何工具可以為c ++處理它。

我的問題是 - 如何使用c ++代碼創建依賴關系管理?

C ++中的依賴關系通過頭文件和轉發聲明來管理。 通常,您應該盡可能地使用前向聲明,並且在無法解決時包含頭文件。 這通常會給您帶來好處,只要您不更改類的接口,重新編譯應該只觸及單個目標文件。

我懷疑你也想要一些更復雜的東西,與你的構建方式有關。 這與c ++幾乎沒什么關系。 如果您想要更好的答案,請更明確地了解您的構建設置。

maven nar(Native Archive)插件可以幫助你解決這個問題。 它是maven的一個插件,允許您在平台上構建本機存檔。 然后,您還可以將標准maven依賴項功能用於c / c ++依賴項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM