IT×農家の長男

研究や趣味についてのメモ

初心者のCMAKE

CMakeの書き方メモ

勉強がてら自分用のメモ。

CMakeは基本的にCMakeLists.txtに必要な項目を書くことで 自動的にmakefileを作ってくれるツール。

 

使用例

実行環境

例として以下のようなディレクトリを想定する。

./
|--CMakeLists.txt
|--HelloWorld.cpp

それぞれのファイルの中身は以下の通り。

全てのファイルの準備が整ったら以下2つのコマンドを入力。

$ cmake .
$ make

このとき-jオプションをつけるとビルドを並列化することができる。これくらいのファイル数なら並列化する必要なし。数字の目安は自分のPCのコア数+2くらい?(人によって様々。)

$ make -j 4

make直後のディレクトリは以下のような構成になる。

./
|--CMakeCache.txt
|--CMakeFiles
|--CMakeLists.txt
|--HelloWorld
|--HelloWorld.cpp
|--Makefile
|--cmake_install.cmake

あとはHelloWorldを実行すればOk。

しかし,cmake_install.cmakeなどの中間ファイルなどで作業ディレクトリが汚くなる。

汚くなるのが嫌な人は別ディレクトリを生成し,そこでビルドを行う。

 

中間ファイル回避方法

先ほど生成した中間ファイルや実行ファイルが存在している人はそれらの削除を行う。

まずbuildディレクトリの作成

$ mkdir build 

中間ファイルが存在しない以下のようなディレクトリ構成になる。

./
|--CMakeLists.txt
|--HelloWorld.cpp
|--build

この状態で

cd build
$ cmake ../
$ make

するとディレクトリ構成は以下のようになる。

./
|--CMakeLists.txt
|--HelloWorld.cpp
|--build
|--CMakeCache.txt
|--CMakeFiles
|--HelloWorld
|--Makefile
|--cmake_install.cmake