iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0
Software Development

C++ 套件管理器求生指南 Conan vs Vcpkg系列 第 14 篇

D14:Conan Package ID 是什麼東東?

  • 分享至 

  • xImage
  •  

接下來來解釋一個很重要的概念:Package ID

我們都知道C++套件管理是個很麻煩的東西,特別是下載預先編譯好的二進位檔的時候,同一個 fmt 12.2.0,Windows 編譯出來是一份、macOS 是另一份,Debug 跟 Release 又各要一份。Conan 要怎麼知道該拿哪一份二進位檔?

Conan 就是透過 Package ID 這個東西來達成。

今天的目標:

  1. 看懂 install 輸出裡那一長串 hash
  2. 搞懂 recipe 跟二進位檔的關係
  3. 搞懂 package ID 是怎麼算出來的

一、怎麼看 Package ID?

如果你之前跑過這個系列的範例,那我希望你回頭到 D03 的範例程式,再跑一次 conan install

conan install . --build=missing

輸出的後半段有這一行:

fmt/12.2.0#b445244e6d0151a425e229248cd2bed8:8db65e2827b8126426a61b6cb7bf0c8a67f5915d#7c7bb68c3f6404d3a32a9e4682a011d9 - Cache

你看到的 hash 可能跟我的不一樣,這是我在 Mac(Apple Clang 21)上的結果。把它拆開來:

fmt/12.2.0 # b445244e... : 8db65e28... # 7c7bb68c...
└名稱/版本┘  └─ recipe ─┘  └package ID┘  └ package ─┘
              revision                   revision

上一篇
D13:Conan 版本範圍
下一篇
D15:自己打包第一個 Conan 套件
系列文
C++ 套件管理器求生指南 Conan vs Vcpkg 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言