ProgrammingのTipなど

cmakeの書き方

cmakeとはC・C++用の自動makefile作成ソフトです
様々なOSやコンパイラ用のmakefileが作れます
基本的な操作
CMakeはルートフォルダにCMkeLists.txtを置き
cmake .
とコマンドを打つことでmakefile等を作成します
ルートフォルダ
ルートフォルダとはプロジェクトの大元にあるフォルダです
簡単に言えばソースファイルが置いてあるフォルダ群の一番上にあるフォルダと考えても良いでしょう
ルートディレクトリは
PROJECT_SOURCE_DIR
または
PROJECT_BINARY_DIR
マクロで指定されます

cmake文法の基本
CMakeを動作させるのに
最低限必要なのは
バージョン指定
プロジェクト名指定
実行ファイル名指定
です
これをルートのCMakeListsに書きます
バージョン指定
cmake_minimum_required(VERSION CMakeのバージョン番号)
プロジェクト名指定
project(プロジェクト名 LANGUAGES 言語指定)
言語は
CならC
C++ならCXX
となります
project(プロジェクト名 LANGUAGES CXX)
実行ファイル名指定
add_executable(実行ファイル名 リンクさせるファイル)

ソースファイルはmain.cpp func1.cpp
実行ファイル名はaexeにしたいとします
これをgccで命ずるには以下のようになります
g++ -o aexe main.cpp func1.cpp
これと同じことをcmakeでさせるには
add_executable(aexe main.cpp func1.cpp)
となります
サブディレクトリの指定
ディレクトリ内にさらにCMakeFilesのあるサブディレクトリを作りたい場合は
SUBDIRS(サブディレクトリ名)
と書きます

例えばProject1ディレクトリ内にsrc1とsrc2のディレクトリがあり
そこにもCMakeFiles.txtを設定するなら
Project1内のCMakeFiles.txtに
SUBDIRS(src1 src2)
と書きます
ヘッダーファイルの検索パス指定 (includeディレクトリ)
そのプログラムがincludeさせたいヘッダーファイルを検索する場所(パス)を指定するには
include_directories(dir1 dir2)
とします

例えばルートにincludeするヘッダーファイルを置くなら
include_directories ("${PROJECT_SOURCE_DIR}")
とします
ライブラリの検索パスを指定
ライブラリを検索するフォルダを指定するには
LINK_DIRECTORIES(dir1 dir2)
ライブラリをリンクするには
target_link_libraries(実行ファイル名 ライブラリ名)
実行ファイル名をaexeとしそれにmath2libというライブラリをリンクさせたい場合の例
add_executable (aexe main.cc)
target_link_libraries(aexe math2lib)
コンパイラオプションの指定
ADD_DEFINITIONS()
別のファイルを読み込む
INCLUDE(file)

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー2

開くメニュー

閉じるメニュー

  • アイテム
  • アイテム
  • アイテム
【メニュー編集】

管理人/副管理人のみ編集できます