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
Usage
cmake [options] <path-to-source>
Options
-G <generator-name> = Specify a build system generator.
Generators
MSYS Makefiles = Generates MSYS makefiles.
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