【ブイシーパッケージ】
vcpkg とは?
最終更新:
💡 C/C++の依存ライブラリを、設定と一緒に管理する
MicrosoftとC++コミュニティが保守するC/C++用のパッケージマネージャー。依存ライブラリの宣言、対象環境を示すTriplet、CMake連携、バージョンとビルド済みキャッシュの管理を解説します。
📌 このページのポイント
プロジェクトで使うライブラリは、どこに書くの?
推奨されるマニフェストモードでは、vcpkg.jsonのdependenciesに書くよ。たとえばfmtとzlibを宣言し、そのファイルのある場所で vcpkg install を実行する。ライブラリ名をコマンドに並べるクラシックモードとは使い方が違うんだ。
同じファイルを渡せば、同じ環境になる?
依存関係を共有する大切な材料にはなるよ。ただしバージョンの基準となるbuiltin-baselineや、必要ならoverridesなども考える。さらにコンパイラ・OS・ビルド設定も結果に関わるので、vcpkg.jsonだけで環境全体が同一になるとは言えないんだ。
Tripletは何?
もっと詳しく知りたい人へ
ビルド済みキャッシュは、違う環境でも必ず使える?
vcpkgは必要なパッケージと構成に合うキャッシュを再利用し、合わなければソースからのビルドが必要になります。キャッシュがあるだけで、CPU・コンパイラ・設定の異なる成果物が互換になるわけではありません。キャッシュの保管先や共有権限も管理します。
Conanと比べて、Windowsなら必ずvcpkgがよい?
OSだけで優劣を決めることはできません。必要なライブラリ、社内での配布方法、バージョン管理、使うビルドシステム、既存の運用などで判断します。vcpkgにもビルド済みキャッシュがあり、キャッシュの有無だけで両者を分けることはできません。
📖 おまけ:英語の意味
「vcpkg」 = C/C++のパッケージ管理ツールの名前
💬 MicrosoftとC++コミュニティが保守しています。Windowsだけの道具ではなく、LinuxやmacOSも対象です。