PR:この記事にはアフィリエイトリンクが含まれます。
C++のCMake設定は、手元で動けば終わりとはいきません。別のOSでは設定が通らず、外部ライブラリの場所も見つからない。そんな環境差に困る場面がありますよね。実務で役立つCMake本は、コマンド暗記よりターゲットや依存関係、配布までの流れが分かる一冊です。
クロスプラットフォーム設定やライブラリ構成を学べる4冊を紹介します。C++の基礎がある初学者向けに、設定ファイルで迷いやすい点も整理しました。
| 書籍 | 主な内容 | 発行年・ページ数 |
|---|---|---|
Minimal CMake | 入門、FetchContent、再利用ライブラリ、テストと配布 | 2025年・266ページ |
Modern CMake for C++ | ターゲット、依存、テスト、インストールとパッケージ化 | 2024年・504ページ |
| CMake Best Practices | プリセット、ツールチェーン、Conan、CIとCD | 2024年・356ページ |
CMake Cookbook | 課題別レシピ、外部ライブラリ、複数OS対応 | 2018年・606ページ |
CMakeの役割
CMakeは、ソースコードをどのコンパイラやビルドシステムで処理するかを設定するツールです。同じプロジェクトからWindowsのVisual Studio向け、macOSやLinux向けなど、環境に合わせたビルドファイルを生成できます。
CMakeLists.txtにはソースだけでなく、アプリやライブラリの構成、必要なヘッダー、コンパイル条件、外部依存も記述します。開発環境ごとの違いをここで整理するわけです。
設定とコンパイルを別の工程と考えると、作業の流れが分かりやすくなります。cmake -S . -B buildでビルド用の場所を作り、続けてcmake --build buildを実行するのが基本です。
ターゲット設計
CMakeでは、実行ファイルやライブラリをターゲットとして扱います。add_executableでアプリを、add_libraryでライブラリを定義。設定を必要な単位に結び付けられます。
ヘッダーの場所やコンパイル定義は、target_include_directoriesやtarget_compile_definitionsで対象ターゲットに指定します。全体向けの設定を減らせるため、プロジェクトが大きくなっても影響範囲を追いやすいですね。
PRIVATEはターゲット内だけ、PUBLICは利用側にも伝える設定、INTERFACEは利用側に伝える設定です。ライブラリを使う側に必要な条件を公開すれば、アプリ側の設定漏れを防ぎやすくなります。
OS差分の整理
CMakeを使っても、OSごとの違いがすべて消えるわけではありません。ファイル名やシステムAPI、コンパイラの機能差は残るため、共通部分をターゲットにまとめ、違いが出る箇所だけ条件分岐させます。
Windows専用のソースを加える場合は、OS条件とtarget_sourcesを組み合わせます。フラグを広い範囲へ一律に指定すると、別のターゲットにも影響することがあるので、適用先を絞るのがコツですよ。
クロスコンパイルでは、ターゲットOSやコンパイラ、SDKの場所をツールチェーンファイルにまとめます。CMakePresetsを使えば開発者とCIで構成を共有でき、手順書のコマンドが人によって違う問題も抑えられます。
ライブラリ構成
複数のアプリで同じ処理を使うなら、機能ごとにライブラリへ切り出せます。公開ヘッダーと内部実装を分けると、再利用しやすくなり、変更の影響も見通せます。
STATICは静的リンクするライブラリ、SHAREDは実行時に読み込む共有ライブラリです。配布や更新のしやすさに違いがあるため、アプリをどう届けるかに合わせて決めましょう。
ビルド中とインストール後では、ヘッダーの参照先が変わります。利用する場面ごとに場所を分ければ、開発時は動くのに利用者の環境でヘッダーが見つからない事態を避けやすくなります。
依存とテスト
外部ライブラリは、OSのパッケージやパッケージマネージャー経由で導入できます。FetchContentで取得する方法もあり、ビルド時に依存先を取り込めるので、小さな例や再現しやすい開発環境で便利です。
依存が増えると、バージョン管理や脆弱性対応、ビルド時間も課題になります。Conanなどの管理ツールをCMakeと組み合わせれば、開発者同士やCIで使う依存関係をそろえやすくなります。
テストを独立したターゲットにし、CTestから実行すれば、ローカルとCIで同じテストを回せます。テストフレームワークや静的解析も連携させると、品質管理の流れが見えやすくなります。
配布と保守
アプリやライブラリを作った後は、インストール先に置くファイルを整理します。実行ファイルだけでなく、共有ライブラリや公開ヘッダー、利用側に必要な設定ファイルも確認しておくと、受け渡し後のトラブルを減らせます。
CIとCDでは、Windows、macOS、Linuxそれぞれでビルドし、テストやパッケージ作成まで自動化できます。CMakePresetsやツールチェーンの設定がそろっていれば、開発者の環境とCIの違いも追いやすいでしょう。
長く使うプロジェクトでは、設定の読みやすさや更新のしやすさも重要です。CMakeのバージョンを明示し、ターゲットごとに依存や条件を持たせれば、担当者が変わった後も保守しやすくなります。
Minimal CMake
Tom Hulton-Harrop著の『Minimal CMake: Learn the best bits of CMake to create and share your own libraries and applications』は、Packt刊の第1版です。2025年1月3日発行、266ページの英語書籍で、CMakeの予備知識がないCやC++の経験者も読み始めやすい内容です。
コンソールアプリからウィンドウアプリへ段階的に進み、Windows、macOS、Linux向けの設定を実例で学べます。アプリを題材に範囲を広げる構成なので、CMakeを初めて学ぶ人にも入りやすいでしょう。
FetchContentでの外部ライブラリ導入、再利用ライブラリの作成、テストや配布まで扱います。基本を押さえてアプリを共有できる形まで進めたい人におすすめです。
Modern CMake
Rafał Świdziński著の『Modern CMake for C++: Effortlessly build cutting-edge C++ code and deliver high-quality solutions』は第2版です。Packtから2024年5月28日に発行された504ページの英語ペーパーバックで、基礎から応用まで腰を据えて学べます。
本文はCMake 3.26を中心に構成され、大半の手法は3.15以降で動作します。一部の章では3.28の機能も扱います。ターゲットや静的・共有ライブラリのリンクを体系的に学びたい開発者に合う内容です。
外部ライブラリ、テストフレームワーク、解析ツールに加え、インストールやパッケージ化も扱います。個別のコマンドにとどまらず、プロジェクト全体の設計を詳しく学びたい人におすすめです。
Best Practices
Dominik Berner、Mustafa Kemal Gilor著の『CMake Best Practices: Upgrade your C++ builds with CMake for maximum efficiency and scalability』はPackt刊の第2版です。2024年8月30日発行、356ページで、CやC++の開発者とビルドシステムの保守担当者を対象にしています。
例題はCMake 3.21で検証され、GCC 9以降、Clang 12以降、MSVC 19以降を使っています。プリセットやツールチェーン、再利用可能なプロジェクト構成も扱うので、OSやコンパイラが混在する現場で活用できます。
Conan 2.0や外部ライブラリの統合に加え、CIとCD、テスト、ファジング、ドキュメント生成、配布まで掲載。個人の設定をチームで運用する段階へ進めたいビルド担当者に、実務的な手がかりを与えてくれます。
CMake Cookbook
Radovan Bast、Roberto Di Remigio著の『CMake Cookbook: Building, testing, and packaging modular software with modern CMake』は2018年9月刊の第1版です。606ページの英語書籍で、課題ごとのレシピを参照しながら設定を調べられます。
Linux、macOS、Windows向けの例があり、Boost、FFTW、Google Test、Eigenなど外部ライブラリの検出や管理を扱います。Catch2のテスト例はCMake 3.5以降で有効とされ、既存プロジェクトの設定を読む際にも参考になります。
レシピ形式で個別の課題を調べたい人に便利な一冊です。一方、刊行は2018年なので、近年のCMake機能を学ぶ際は現行の資料もあわせて確認してください。C、C++、Fortranの基礎知識がある人に役立ちます。
結論
CMakeを初めて導入し、Windows、macOS、Linux向けの設定からライブラリ、テスト、配布まで一通りつなげたいなら、『Minimal CMake』をおすすめします。予備知識なしから実務の工程を追える点が、最初の一冊にすすめる理由です。
大きなプロジェクトを保守する人には『Modern CMake』、プリセットやCIとCDをチーム運用に取り入れたい人には『CMake Best Practices』が合います。個別の実装をレシピから調べるなら、『CMake Cookbook』が参照書として役立ちます。
4冊はいずれも英語のペーパーバックで、販売価格は時期や販売店によって変わります。予算を考える際は、本体価格と送料を合わせて、購入時点の表示額を確認してください。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。




