初心者のCMAKE
CMakeの書き方メモ
勉強がてら自分用のメモ。
CMakeは基本的にCMakeLists.txtに必要な項目を書くことで 自動的にmakefileを作ってくれるツール。
使用例
実行環境
- Ubuntu 16.04
- CMake 3.5.1
例として以下のようなディレクトリを想定する。
./
|--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