【コナン】

Conan とは?

💡 C++ライブラリの名探偵、依存関係の謎をすべて解決
📌 このページのポイント
Conan のバイナリキャッシュの仕組み 開発者A conan install 初回 Conan リモート ソースレシピ ビルド済みバイナリ メタデータ 開発者B / CI conan install キャッシュ ソースからビルド 30〜60分(大規模ライブラリ) バイナリキャッシュ 数分 同じ設定(OS・コンパイラ・アーキテクチャ)ならバイナリを再利用
Conanのバイナリキャッシュのイメージ
ひよこ ひよこ

Conanってvcpkgと同じジャンルのツールなの?

ペンギン先生 ペンギン先生

そうだよ、どちらもC/C++パッケージマネージャーだね。Conanの特徴は「分散型」で、自分専用のパッケージリポジトリを立てられるんだ。社内ライブラリを管理するのに便利だよ

ひよこ ひよこ

バイナリキャッシュって何がうれしいの?

ペンギン先生 ペンギン先生

C++ライブラリはソースからビルドすると時間がかかるんだ。Conanはビルド結果をバイナリとしてキャッシュして、同じ設定なら再利用できるようにするよ。CIで毎回ビルドする代わりにキャッシュを使えば、ビルド時間が数十分から数分に短縮されることもあるんだ

ひよこ ひよこ

パッケージのレシピってどうやって書くの?

ペンギン先生 ペンギン先生

conanfile.pyというPythonファイルにライブラリの情報やビルド手順を書くよ。Pythonで書けるから、条件分岐や動的な設定も柔軟にできるんだ。シンプルな場合はconanfile.txtでも依存関係を宣言できるよ

ひよこ ひよこ

Conan 2.0で何が変わったの?

ペンギン先生 ペンギン先生

レシピの書き方が大幅に整理されて、CMakeとの統合がよりスムーズになったよ。ジェネレーターの仕組みも刷新されて、CMakePresets経由でビルド設定を渡せるようになったんだ。1.x系との互換性はないけど、モダンなC++開発に合わせた設計になっているよ

ひよこ ひよこ

大きな企業でも使われているの?

ペンギン先生 ペンギン先生

ゲーム会社や組み込みメーカーなど、C++を大規模に使う企業で採用が多いよ。JFrog Artifactoryと組み合わせると、社内ライブラリバージョン管理アクセス制御もできるんだ。特にマルチプラットフォーム対応が必要なプロジェクトでは、OS・コンパイラ・アーキテクチャごとのバイナリを一元管理できるのが強みだね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Conan」って出てきたら「C/C++のパッケージ管理とバイナリ配布ができるツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Conan」 = Conan(人名由来)
💬 「コナン・ザ・バーバリアン」(蛮族コナン)が名前の由来。C++の依存関係という野蛮な世界を力で解決する、というユーモアだよ
← 用語集にもどる