※前提条件:本情報は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) # リンクするライブラリとリンクする実行ファイルの指定 よく使うコマンド †
便利なコマンド †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の利用 あなたのお住まいの地域で最安のブロードバンド選び コメント: |