c++包管理工具conan


Conan is a portable package manager, intended for C and C++ developers, but it is able to manage builds from source, dependencies, and precompiled binaries for any language.
Conan是一個跨平台的包管理工具,面向c和c++開發者,但是他能夠從源碼,依賴和預編譯二進制包。
 
biicode 因為2015年因為經營原因關閉了,Conan就成為接班人,項目截至2017年3月仍然非常活躍。
 
官方網站:
https://www.conan.io/
 
作者:駱錚
鏈接:https://www.zhihu.com/question/47298264/answer/105388121
來源:知乎
著作權歸作者所有,轉載請聯系作者獲得授權。

之前在管理依賴的時候嘗試過,大概說說第一印象:
  • 自身安裝包:全平台覆蓋,有完善的binary這很方便。但是基於Python可能在一些場合會帶來麻煩,更傾向於搞出一個bulkcompile的.cpp,這樣可以無痛切換到conan而不會因為自身而帶來額外的依賴,畢竟不是所有項目都希望引入Py。
  • 是采用Binary還是Source是每個包管理都會遇到的問題,binary需要維護,source對於Cpp來說編譯速度太慢。目前Conan貌似是對大包提供了Binary,找不到時會fallback到Source上去,看起來是一個比較好的解決方案。但是不知道二進制兼容性(RTTI、cxxabi)這類的做得怎么樣(更新:看C/C++ Open Source Package Manager ,大概對每個編譯器大版本都提供了Release和Debug兩個二進制版本,這樣解決了abi問題,但RTTI估計是沒戲了)。不過好在可以自己架服務器提供包。
  • 目前的官方包還是太少,像leveldb之類的都找不到
  • CMake集成做的不錯
依賴管理其實本身就是一個矛盾體,如下表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM