カテゴリ: C++ 更新日: 2026/02/08

CMakeの基本構文とCMakeLists.txtを初心者向けに解説

CMakeの基本構文とCMakeLists.txt
CMakeの基本構文とCMakeLists.txt

先生と生徒の会話形式で理解しよう

生徒

「先生、CMakeって何ですか?Makefileとどう違うんですか?」

先生

「CMakeは、MakefileやVisual Studio用のプロジェクトファイルを自動生成できるツールです。つまり、C++プロジェクトを複数の環境でビルドしやすくする便利な仕組みです。」

生徒

「じゃあ、CMakeLists.txtって何をするファイルなんですか?」

先生

「CMakeLists.txtはCMakeに対して『このプロジェクトはこういう設定でビルドしてください』と指示するファイルです。」

1. CMakeLists.txtの基本構文

1. CMakeLists.txtの基本構文
1. CMakeLists.txtの基本構文

CMakeLists.txtは、C++のプロジェクトをビルドするための設定を書き込むテキストファイルです。初心者向けに基本の構文を説明します。

  • cmake_minimum_required(VERSION 3.10):CMakeの最低バージョンを指定
  • project(ProjectName):プロジェクト名を設定
  • add_executable(実行ファイル名 ソースファイルリスト):実行ファイルを作成するための指定
  • target_include_directories:ヘッダーファイルのディレクトリを指定
  • target_link_libraries:ライブラリとのリンクを指定

2. シンプルなCMakeLists.txt例

2. シンプルなCMakeLists.txt例
2. シンプルなCMakeLists.txt例

先ほどのHello WorldプログラムをCMakeでビルドする場合、以下のようなCMakeLists.txtを作成します。


cmake_minimum_required(VERSION 3.10)

# プロジェクト名
project(HelloCppProject)

# C++の標準バージョンを指定
set(CMAKE_CXX_STANDARD 17)

# 実行ファイルの作成
add_executable(main main.cpp)

このCMakeLists.txtは非常にシンプルで、初心者でもすぐに使える設定です。main.cppというソースファイルをコンパイルして、mainという実行ファイルを生成することを指示しています。

3. CMakeのビルド手順

3. CMakeのビルド手順
3. CMakeのビルド手順

CMakeでC++プロジェクトをビルドする手順も簡単です。ターミナルで以下のように実行します。


# ビルド用ディレクトリ作成
mkdir build
cd build

# CMakeを使ってMakefileを生成
cmake ..

# Makefileでビルド
make

# 実行
./main

実行すると以下の出力が得られます。


Hello, C++ World!

ポイントは、CMakeはプロジェクト構成を解析して、MakefileやVisual Studio用プロジェクトを自動生成してくれることです。そのため、環境が変わってもCMakeLists.txt一つでビルド可能になります。

4. CMakeを使うメリット

4. CMakeを使うメリット
4. CMakeを使うメリット
  • 複数のプラットフォームやコンパイラに対応できる
  • 依存関係のあるファイルだけを再ビルドするので効率的
  • ライブラリやヘッダーファイルの管理が簡単
  • Visual StudioやXcodeなどのIDE用プロジェクトも自動生成可能

初心者でもCMakeを使いこなせば、C++開発環境を効率よく最適化でき、複雑なプロジェクトでも簡単に管理できます。

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

CMakeとは具体的にどのようなツールで、なぜC++開発で使われるのですか?

CMake(シーメイク)は、C++プロジェクトのビルドプロセスを管理するためのオープンソースのビルドシステム生成ツールです。プログラミング初心者が直面する最大の壁の一つが、異なるOSや開発環境でのコンパイル作業です。CMakeは「CMakeLists.txt」という設定ファイルから、WindowsならVisual Studioのソリューションファイル、LinuxならMakefileといった、それぞれの環境に最適なビルド用プロジェクトファイルを自動生成します。これにより、開発者は環境ごとの複雑なコマンドを覚える必要がなくなり、効率的にプログラムを実行できるようになります。
カテゴリの一覧へ
新着記事
New1
C++
C++のメンバアクセス演算子を完全解説!初心者でもわかる . → :: の使い方まとめ
New2
Rust
Rustの文字列を極める!&str(文字列スライス)の基本概念とString型との違い
New3
C++
C++のキャスト演算子を完全解説!dynamic_cast・static_cast・const_cast・reinterpret_castを初心者向けに説明
New4
C++
C++開発のIDE選びを完全ガイド!初心者でもわかるCLion・Eclipse CDT・Qt Creator比較
人気記事
No.1
Java&Spring記事人気No1
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.2
Java&Spring記事人気No2
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.3
Java&Spring記事人気No3
C言語
C言語のソースコードとヘッダファイルの役割とは?初心者向けにわかりやすく解説!
No.4
Java&Spring記事人気No4
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.5
Java&Spring記事人気No5
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.6
Java&Spring記事人気No6
C言語
C言語開発でよく使われるエディタとIDEランキング【初心者向け完全ガイド】
No.7
Java&Spring記事人気No7
C言語
C言語の列挙型(enum)の使い方を完全ガイド!初心者でもわかる基本操作
No.8
Java&Spring記事人気No8
C++
C++リンカとコンパイラのオプション設定を完全ガイド!初心者にもわかる開発環境の基礎