iT邦幫忙

2026 iThome 鐵人賽

DAY 28
0
Software Development

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

D28:vcpkg Binary Caching 二進位快取

  • 分享至 

  • xImage
  •  

昨天我們看到 Conan 對套件管理的基本原則是「預編譯優先(Prebuilt-first)」:官方伺服器有大量預先編好的二進位檔,它希望你盡可能的下載預先編譯好的套件,只有刻意手動指定時,才會在本機編譯套件。

而 vcpkg 的哲學正好相反,它是**「原始碼優先(Source-first)」**。

vcpkg 官方預設不提供全世界各種環境的中央伺服器,它信任你的本地工具鏈,第一次安裝時一律「現場編譯」。

本機開發時還過得去吧,反正只有第一次要編譯,編過一次,產物就會留在硬碟裡。

但換到 CI/CD 環境,事情就完全不是這麼一回事了。

現代 CI(如 GitHub Actions、GitLab CI)的執行機器大部分是拋棄式容器,每次觸發都是一台全新的虛擬機。

想像一下,萬一你的專案依賴了 Boost + Protobuf + OpenSSL + gRPC。每次有人改動程式碼,基於第一次現場編譯的原則,CI 每次都要從頭花 40 分鐘編譯套件原始碼。工程師咖啡不知道喝幾杯了,還沒看到結果,團隊的 CI 預算也全都浪費在一次又一次重複編譯套件上。

怎麼辦呢?這就是為什麼 vcpkg 必須有 **Binary Caching(二進位快取)**這個功能。


上一篇
D27:Conan 最常見錯誤 Missing prebuilt package 談 Package ID 與相容性
下一篇
D29:Conan Lockfile 鎖定套件版本
系列文
C++ 套件管理器求生指南 Conan vs Vcpkg 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言