3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CMakeチュートリアル1【Hello, world】

Last updated at Posted at 2022-01-20

前回はCMake【インストール編】でした
今回は実際にCMakeを書いていきます
まずは、皆さん大好きHello, worldです

ソースコードはgithubからダウンロード/cloneしてください

チュートリアル1

CMakeには、CMake-GUIというGUIでプロジェクトを出力する方法もありますが、敢えてコマンドベースで解説していきます

CMakeLists.txtの書き方

CMakeコマンドでプロジェクトを出力するにはCMakeLists.txtを書きます
CMakeコマンドがルートディレクトリのCMakeLists.txtを解釈してプロジェクトを作成します

tutorial_1/CMakeLists.txt
# CMakeの最低要求バージョンの定義
cmake_minimum_required(VERSION 3.13)
# プロジェクト名の定義
project(cmake_tutorial_1)
# プロジェクトにtutorial_1.ccを追加
add_executable(cmake_tutorial_1 tutorial_1.cc)
  1. cmake_minimum_required(VERSION 3.13) でCMakeの最低要求バージョンを指定します(満たさない場合はエラーが出ます)
  2. project(cmake_tutorial_1)でプロジェクト名を定義します
  3. add_executable(cmake_tutorial_1 tutorial_1.cc)でcmake_tutorial1プロジェクトにtutorial_1.ccを追加します(tutorial_1.ccはただのhello, world)

ビルド

cd cmake_tutorials
cmake -S tutorial_1 -B build/tutorial_1
cmake --build build
  1. cmake -S tutorial_1 -B build/tutorial_1
    -S tutorial_1でソースコード(CMakeLists.txtのルート)を指定
    -B build/tutorial_1で中間・出力ディレクトリを指定、build/tutorial_1フォルダが作成されます

  2. cmake --build build/tutorial_1
    --buildはビルドコマンド
    --build build/tutorial_1でbuild/tutorial_1フォルダをビルドする

※CMake 3.12以前は以下のようにビルドしてました

cd cmake_tutorials
mkdir build/tutorial_1
cd build/tutorial_1
cmake ../../tutorial_1
make

実行

ビルドが成功するとbuildフォルダに中間ファイルや実行ファイルが出力されます
出力先などはCMakeLists.txtで変更は可能ですが、その方法はまた別途
今回はビルドオプションを指定していないのでDebugモードでビルドされているため、Winとその他で若干出力ディレクトリが異なる

  • Windows
build\tutorial_1\Debug\cmake_tutorial_1.exe
  • Mac/Linux
build/tutorial_1/cmake_tutorial_1

以上、今回は実際にCMakeLists.txtの書き方とビルドの仕方でした
次回はinclude, 複数ファイルについてです

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?