カテゴリ: C++ 更新日: 2025/12/05

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++開発環境を効率よく最適化でき、複雑なプロジェクトでも簡単に管理できます。

カテゴリの一覧へ
新着記事
New1
C++
C++の変数のスコープと有効範囲を完全解説!初心者でもわかる基本と考え方
New2
C++
C++とは?歴史と特徴を初心者向けに解説!Rustとの違いとモダン言語比較
New3
C++
MinGWとMSYS2でWindowsにC++環境を構築する方法を徹底解説!初心者でもできるセットアップガイド
New4
Rust
Rust開発環境をLinuxで構築する方法とおすすめ設定を初心者向けに徹底解説
人気記事
No.1
Java&Spring記事人気No1
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.2
Java&Spring記事人気No2
C言語
C言語の関数定義と呼び出しを完全ガイド!初心者でも分かる基本の書き方
No.3
Java&Spring記事人気No3
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.4
Java&Spring記事人気No4
C言語
C言語の列挙型(enum)の使い方を完全ガイド!初心者でもわかる基本操作
No.5
Java&Spring記事人気No5
C言語
Makefile入門:C言語プロジェクトを自動ビルドしよう!初心者でも分かる仕組みと使い方
No.6
Java&Spring記事人気No6
C言語
C言語の開発環境をWindowsに構築する方法【Visual Studio編】
No.7
Java&Spring記事人気No7
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.8
Java&Spring記事人気No8
C++
MinGWとMSYS2でWindowsにC++環境を構築する方法を徹底解説!初心者でもできるセットアップガイド