iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

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

C++ 有 ISO 標準、有三大編譯器、有四十年歷史,就是沒有一個大家講得出來的套件管理器。ISO C++ 2026 開發者問卷裡,56% 的人管理第三方函式庫的方式是「把原始碼整包拉進來一起編」,第二名是「自己下載、自己編、編完再說」。套件管理器連前五名都排不進去。

這三十天我想要說明:C++ 中目前最成熟的兩個套件管理器: Conan 跟 vcpkg 各自怎麼使用。讓你管理函式庫不再頭痛。

參賽天數 27 天 | 共 27 篇文章 | 1 人訂閱 訂閱系列文 RSS系列文
DAY 11

D11:vcpkg 的 triplet 是什麼碗糕?

昨天跟前天的範例中,如果你用 Windows,你一定發現了編譯出來的執行檔旁邊,有個 fmt.dll。 我看到這個 DLL 就覺得很煩。 難道不能把把函式庫全部...

2026-09-25 ‧ 由 chchwy 分享
DAY 12

D12:vcpkg 的版本控制與 baseline 概念

我們開始用 vcpkg 之後,一直有個問題: vcpkg.json 裡只寫 fmt,沒寫版本號碼,那我們專案用的到底是哪個版本?是 fmt 10, 11 還是...

2026-09-26 ‧ 由 chchwy 分享
DAY 13

D13:Conan 版本範圍

昨天講了 vcpkg 的版本控制觀念。今天我們來講 Conan 的版本控制觀念。 D02 裡面我們提過,兩套套件管理系統的「版本觀完全相反」。今天就來比較一下,...

2026-09-27 ‧ 由 chchwy 分享
DAY 14

D14:Conan Package ID 是什麼東東?

接下來來解釋一個很重要的概念:Package ID 我們都知道C++套件管理是個很麻煩的東西,特別是下載預先編譯好的二進位檔的時候,同一個 fmt 12.2.0...

2026-09-28 ‧ 由 chchwy 分享
DAY 15

D15:自己打包第一個 Conan 套件

前面到14天為止,我們都是以消費者的角度來使用套件管理器,就是很方便的寫幾行程式碼,然後就可以無痛的導入第三方函式庫。 除了使用別人打包好的套件以外,我們今天開...

2026-09-29 ‧ 由 chchwy 分享
DAY 16

D16:conan create 成功,套件就能用了嗎?談 test_package 的用途

前一天我們建立第一個Conan包: hello/1.0 但是我其實打包的過程中,有許多地方可能會犯錯,導致打包出來的套件有BUG。 我們就來看看哪裡可能出錯,又...

2026-09-30 ‧ 由 chchwy 分享
DAY 17

D17:自己定義 Conan options,編譯套件也能選配

你編譯過一些有名的開源專案嗎?那你可能會注意到,很多有名的C++專案,編譯的時候都有很多選項可以設定。 以著名的加密函式庫 OpenSSL 作為例子,編譯的時候...

2026-10-01 ‧ 由 chchwy 分享
DAY 18

D18:套件包好了,使用者要連結哪個 target?

前兩天我們已經成功打包了一個非常簡單的自製的 hello 套件,隔天又替它加了編譯選項。 這樣就好了嗎?顯然沒那麼簡單。 套件打包好之後,使用前常常會有一些特殊...

2026-10-02 ‧ 由 chchwy 分享
DAY 19

D19:Conan 套件不需要連網也能用?揭秘本機快取的運作機制

前面幾天,我們學會怎麼建立自己的套件,再讓另一個專案使用這套件。 但仔細想想:這個我們自己建立的套件,到底儲存在哪裡呢?我們並沒有把套件上傳到 ConanCen...

2026-10-03 ‧ 由 chchwy 分享
DAY 20

D20:自己的函式庫要怎麼包成 vcpkg port?

今天我們要切換到 vcpkg 囉。 假如你開發了一個公司內部的小函式庫,名字叫做 Super Libray,你覺得這東西真是太有用了,很多公司專案一定都會用到,...

2026-10-04 ‧ 由 chchwy 分享