Re: [問題] Conan

作者: Neisseria (Neisseria)   2018-06-14 15:47:25
※ 引述《XAMDOU (薩姆德)》之銘言:
: 最近在看 c++ 的 package management framework
: 有看到一套 conan: https://conan.io/
: 搜尋一下資料感覺還是懵懵懂懂
: 各位大大有推薦的學習資源嗎?
: 或是有沒有任何一些好/壞心得分享?
: 感謝各位大大!
原本 C (和 C++) 沒有什麼套件的概念
在類 Unix 系統上就是直接用標頭檔和函式庫 (動態或靜態)
頂多 Windows 上多個 .lib 來儲存公開介面相關的資訊
許多類 Unix 系統會額外包裝這些 C (或 C++) 函式庫
使用起來的感覺和其他現代語言的套件差不多
但骨子裡其實還是使用標頭檔和函式庫 只是管理上比較方便
由於 C (和 C++) 沒有規範套件的格式
基本上就是每個系統各自做自已的輪子 而且還互不相通
另外,C (和 C++) 要從原始碼編譯
不像 Java 那樣以虛擬機器將系統抽象化
現行的做法是每個系統先預先編好原始碼,以 binary 形式發布
另外一種做法是將編譯的流程自動化,像 Homebrew
回到一開始提的 conan,這套軟體基本上就是綜合考慮以下兩件事而成的産物
- 編譯自動化 (build automation)
- 軟體套件系統 (package management system)
因為要考慮和現行軟體專案接軌,所以看起來比較複雜
但小弟還沒有機會玩 conan,或許其他板友會有心得
作者: windows2k (程式宅 <囧>)   2018-06-14 17:17:00
可以看看vcpkg
作者: KanzakiHAria (神崎・H・アリア)   2018-06-14 19:50:00
早期的語言沒有套件管理的概念 所以很多是靠unix系的套件管理員去拉靜態動態函式庫也因為沒有套件管理的概念 版本這件事一直是大問題比較好的會寫cmake去綁定版本光是不同套件就有不同的flag需求就算有版本管理其實也不夠用更別說三家編譯器行為和flag不一樣之外 不同系統環境還會影響 #define 的程式區間對我這個廢物C++開發者而言conan超沒用qqlearning框架遇到不同的顯卡 不同的cuda driver大部分的時候還是要拉source去重新編成自己的環境
作者: XAMDOU (薩姆德)   2018-06-14 21:13:00
我的經驗也是自己去抓source跟著README把東西編起來看到conan很期待可以有更方便的作法,不知道是不是我想像的我不是什麼大大 >_< 我常用的平台是 linux 和 macIDE用CLion,最近才注意到CLion有支援cmake/conan很感興趣

Links booklink

Contact Us: admin [ a t ] ucptt.com