FrontPage

※前提条件:本情報はcmake3.0を基づいて説明してる

基本的なコンパイルオプションの設定

cmake_minimum_required(VERSION 2.6) # ここで指定したバージョン以上のcmakeで実行可能
project(TestProject) # プロジェクト名,なんでもいい
set(CMAKE_CXX_COMPILER "/usr/bin/clang++") # C++コンパイラ指定
set(CMAKE_CXX_FLAGS "-Wall -std=c++14") # コンパイルオプションの指定
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -ggdb") # デバッグモードのオプション.後述するがcmake実行時にモードを変更可能
set(CMAKE_CXX_FLAGS_RELEASE "-O3") # リリースモードのオプション

include, libディレクトリの設定

include_directories(/unko/include_path/) # includeディレクトリの指定.複数宣言しても順番に追加されてくので一気に宣言する必要なし
link_directories(/unko/libfilepath) # libディレクトリの指定,同上

生成実行ファイルの指定

add_executable(jikkou_file_dao src_file_1.cpp src_file2.cpp) # jikkou_file_daoって名前の実行ファイル生成
target_link_libraries(jikkou_file_dao library_no_path) # リンクするライブラリとリンクする実行ファイルの指定

よく使うコマンド

cmake_minimum_required(VERSION major[.minor[.patch]] [FATAL_ERROR])要求するcmakeのバージョンの指定、「cmake_minimum_required(VERSION 2.6)」と書くと、
cmakeのバージョンが2.6未満の時にエラーになる。
PROJECT(プロジェクト名)プロジェクト名の指定
include_directories(INCLUDE_PATH)includeディレクトリのパスを指定(-Iオプションに使われる)
link_directories(LIBRARY_PATH)libディレクトリのパスを指定(-Lオプションに使われる)
add_definitions(definitions1 definition2 ...)definitionの指定。「add_definitions(-DDEBUG)」とか。
set_target_properties(ターゲット プロパティ 値)ターゲットに対してプロパティを設定する。「set_target_properties(hellodemo LINK_FLAGS -lc)」とか。
ADD_EXECUTABLE(ターゲット ソースコード)実行ファイルを生成。「ADD_EXECUTABLE(hellodemo hello.c)」とか。
target_link_libraries(ターゲット ライブラリ名)リンクするライブラリを指定。「target_link_libraries(hellodemo hello_lib) 」とか。

便利なコマンド

add_library(ターゲット IMPORTED)
ライブラリの生成。「ADD_LIBRARY(hello_lib SHARED libhello.c)」だと「libhello_lib.dylib」が生成される。
OPTION(フラグ名 "簡単な説明" デフォルト)
自作のオプションを作成。「OPTION(FLAG_ONE "flag sample one with no value" OFF)」とか、使うときはコンパイル時に「-DFLAG_ONE=ON」とかする。
SUBDIRS(PATH)
一緒にコンパイルしたいディレクトリの指定。「SUBDIRS(demos)」とか。サブディレクトリにもCMakeLists.txtが必要です。
MESSAGE("文字列")
文字列を出力
FIND_PACKAGE(パッケージ名)
パッケージを検索していろんな設定を読み込んでくれる超便利なやつ。例えば「FIND_PACKAGE(OpenGL)」とかするとキャッシュ「CMakeCache.txt」にOpenGLのパス(OPENGL_INCLUDE_DIR)とかを出力してくれる。
IF(フラグ名) ‾‾ ELSE(フラグ名) ‾‾ ENDIF(フラグ名)
if文での制御も可能。「IF(OPENGL_FOUND) ‾‾ ENDIF(OPENGL_FOUND)」とか。

cmake ./ # Makeファイル生成
cmake -DCMAKE_BUILD_TYPE=Debug ./ # デバッグモードのコンパイルオプションつかいたいときはこっち
cmake -DCMAKE_BUILD_TYPE=Release ./ # リリースモード

make # 実行ファイル生成する

自定義変数

set(value 1) # 変数valueを生成
unset(value) # 変数valueを削除
message(${value}) # 変数valueの利用


セシウム137を97.7%吸着

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:45:39 (558d)