cmakeの使い方

cmakeは,CMakeLists.txtに記述にしたがってMakefile(g++ のためのコンパイル・リンク条件を記載したファイル)を作成するコマンド゙である。

使用方法例

ソースプログラム ~/c_eigen/main2.cpp
CMakeList.txt  はmain2.cppと同じディレクトリに置く。

コンパイルリンクの手順
makdir build :ディレクトリ ~/c_eigen/build を作成する。Makefileやexeファイルを格納するディレクトリとなる。
cd build : build ディレクトリに移動
cmake -G "MSYS Makefiles" ..  :Msys用のMakefielを作る。 「.. 」はソースのパスが一つ上のディレクトリであることを意味する。
make :cmakeでMakefileがカレントディレクトリに作成されているので,それにしたがってソースファイルをコンパイル・リンクする。

cmakeのコマンドオプション

$ cmake
Usage

cmake [options] <path-to-source>

Options
-G <generator-name> = Specify a build system generator.

Generators

MSYS Makefiles = Generates MSYS makefiles.

CMakeLists.txtの例

cmake_minimum_required (VERSION 2.6)
project (c_eigen64)
add_executable(c_eigen64 main2.cpp)
target_link_libraries(c_eigen64 lapack)
target_link_libraries(c_eigen64 blas)
target_link_libraries(c_eigen64 gfortran)
target_link_libraries(c_eigen64 winpthread)
target_link_libraries(c_eigen64 quadmath)
set(CMAKE_CXX_FLAGS "-static")

説明

cmake_minimum_required (VERSION 2.6)
 cmake.exeが2.6より古いとビルドできないように指定。

project (c_eigen64)
 c_eigen64.exeを作成することを指定。

add_executable(c_eigen64 main2.cpp)
 c_eigen64.exe のソースが、main2.cpp であることを指定。

target_link_libraries(c_eigen64 lapack)
target_link_libraries(c_eigen64 blas)
target_link_libraries(c_eigen64 gfortran)
target_link_libraries(c_eigen64 winpthread)
target_link_libraries(c_eigen64 quadmath)
 各ライブラリを指定。g++ -llapack等に相当する。

set(CMAKE_CXX_FLAGS "-static")
 静的ビルドを指定。g++ -static に相当する。
 これによって,c_eigen64.exeをダブルクリックするだけでプログラムを実行できる。

cmakeの参考文献
http://opencv.jp/cmake/cmake_tutorial.html


2014/09/04