作者Neisseria (Neisseria)
看板C_and_CPP
標題Re: [問題] Conan
時間Thu Jun 14 15:47:25 2018
※ 引述《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,或許其他板友會有心得
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.71.94.20
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1528962448.A.5AC.html
※ 編輯: Neisseria (203.71.94.20), 06/14/2018 15:54:28
1F:→ windows2k: 可以看看vcpkg 06/14 17:17
有耳聞過,還沒實際去試
最近微軟又重新注重 C++ 了,可惜對 C 還是老樣子
2F:推 KanzakiHAria: 早期的語言沒有套件管理的概念 所以很多是靠unix系 06/14 19:50
3F:→ KanzakiHAria: 的套件管理員去拉靜態動態函式庫 06/14 19:50
4F:→ KanzakiHAria: 也因為沒有套件管理的概念 版本這件事一直是大問題 06/14 19:51
5F:→ KanzakiHAria: 比較好的會寫cmake去綁定版本 06/14 19:51
6F:→ KanzakiHAria: 光是不同套件就有不同的flag需求 06/14 19:52
7F:→ KanzakiHAria: 就算有版本管理其實也不夠用 06/14 19:53
8F:→ KanzakiHAria: 更別說三家編譯器行為和flag不一樣之外 不同系統 06/14 19:56
9F:→ KanzakiHAria: 環境還會影響 #define 的程式區間 06/14 19:57
10F:→ KanzakiHAria: 對我這個廢物C++開發者而言conan超沒用qq 06/14 19:57
11F:→ KanzakiHAria: learning框架遇到不同的顯卡 不同的cuda driver 06/14 20:01
12F:→ KanzakiHAria: 大部分的時候還是要拉source去重新編成自己的環境 06/14 20:02
這的確是從原始碼編譯的好處,比較靈活
13F:推 XAMDOU: 我的經驗也是自己去抓source跟著README把東西編起來 06/14 21:13
14F:→ XAMDOU: 看到conan很期待可以有更方便的作法,不知道是不是我想像的 06/14 21:14
不知道大大用什麼系統?
這在類 Unix 系統上其實已經部分有解了,只是 Windows 上起步較慢
如果連編譯參數都要客製的話,我想大概和自己編差不多複雜
※ 編輯: Neisseria (112.104.98.153), 06/14/2018 23:38:35
15F:推 XAMDOU: 我不是什麼大大 >_< 我常用的平台是 linux 和 mac 06/15 09:04
16F:→ XAMDOU: IDE用CLion,最近才注意到CLion有支援cmake/conan很感興趣 06/15 09:05