目次
🔧 はじめての CMake|C++ビルドシステムの救世主!
C++の開発で、「g++
コマンドが長くなってきたな…」「複数ファイルや依存関係の管理が大変…」と感じたことはありませんか?
そんなときに頼りになるのが CMake(シーメイク) です!
この記事では、CMakeの役割から基本の使い方まで、初心者向けにわかりやすく紹介します。
🧠 CMakeってなに?
CMakeは C/C++プロジェクトのビルドを管理するツール です。
- プロジェクトの構造を記述 → ビルド手順を自動生成
- クロスプラットフォーム対応(Windows, macOS, Linux)
- Makefile や Visual Studio のプロジェクトも生成可能
つまり、「人間がわかりやすく書いた設定ファイル(CMakeLists.txt
)」を元に、「ビルドツールが理解できるファイル(Makefileなど)」を作ってくれるツールなんです。
🏗️ なぜCMakeが便利なの?
- ✅ 複数ファイルやディレクトリでもスッキリ整理
- ✅ 再コンパイルの効率化(必要なファイルだけ再ビルド)
- ✅ 外部ライブラリとの連携が簡単に
- ✅ Visual Studio / Ninja / Unix Makefile など柔軟なビルド対応
📁 最小構成のCMakeプロジェクト
まずはシンプルな構成で試してみましょう。
📂 ファイル構成
my_project/ ├── CMakeLists.txt └── main.cpp
🧾 main.cpp
#include <iostream> int main() { std::cout << "Hello, CMake!" << std::endl; return 0; }
📝 CMakeLists.txt
cmake_minimum_required(VERSION 3.10) project(MyProject) add_executable(myapp main.cpp)
🛠️ ビルド手順(ターミナル)
cd my_project mkdir build cd build cmake .. make
cmake ..
→CMakeLists.txt
を元にMakefileを生成make
→ 実行ファイルmyapp
をビルド
🔍 CMakeの主なコマンド
コマンド | 説明 |
---|---|
cmake_minimum_required | 使用するCMakeの最小バージョン指定 |
project() | プロジェクト名を定義 |
add_executable() | 実行可能ファイルを生成 |
add_library() | ライブラリを定義 |
target_link_libraries() | ライブラリをリンク |
include_directories() | インクルードパスを追加(古めの方法) |
target_include_directories() | モダンCMakeの推奨方法 |