CMAKE / CMAKEList.txt学习

1、(バージョン2.8)cmake_minimum_required

CMakeの現在のバージョンは、指定されたバージョンより低い場合、それはプロジェクトファイルの処理を停止し、最小バージョンをCMakeのとエラーを報告

2、プロジェクト(<プロジェクト> [languageName1 languageName2 ...])

プロジェクト名:プロジェクト名

LANGUAGENAME:指定したプロジェクトは、言語をサポートすることができます。プロジェクト(こんにちは、C CXX)、CXX C ++であること

図3に示すように、セット(CMAKE_CXX_FLAGS "-std = C ++ 11")

C ++ 11標準のサポートを追加します。

4、find_package(パッケージと最小バージョンの名前)

パッケージの裏にはライブラリとヘッダファイルを必要として下さい

例如find_package(OpenCVの2.4.3 REQUIRED)

5、include_directories( "パス")

例えば:

include_directories(

      $ {} PROJECT_SOURCE_DIR

      $ {PROJECT_SOURCE_DIR} /含みます

      $ {} EIGEN3_INCLUDE_DIR)

$ {}はメソッドの参照はどこにあります

図6に示すように、セット(CMAKE_LIBRARY_OUTPUT_DIRECTORY $ {PROJECT_SOURCE_DIR} / LIB)

セットパス(以下、パス生成共有ライブラリ)、プロジェクトフォルダ内にある、すなわち生成された共有ライブラリのlibファイル

7、add_library($ {PROJECT_NAME} SHAREDのSRC / CPP ......名)

共有ライブラリを作成します(プロジェクト内のcppファイルは、簡単にヘッダファイルを介して呼び出すために、共有ライブラリファイルを作成することです)

あなただけのcppを必要とするとき、これは、主な機能を必要としません

ライブラリ名を生成している$ {PROJECT_NAME}は名前.soというプロジェクトlibに呼ばれた共有ライブラリファイルを示し  

Cmakelistsも特に、他のプログラムで使用するための共有ライブラリを生成するための主な機能せずにプログラムをコンパイルするために書かれます

8、target_link_libraries($ {PROJECT_NAME} /usr/lib/i386-linux-gnu/libboost_system.so)

図書館、ちょうど生成$ {} PROJECT_NAMEライブラリとリンクするのに必要な他のライブラリ

図9に示すように、セット(CMAKE_RUNTIME_OUTPUT_DIRECTORY $ {PROJECT_SOURCE_DIR} / bin)に

実行ファイルのパスを設定します

10、add_executable(実行ファイル名は、ファイル名が演じるメイン関数を記述するためにプロジェクトディレクトリから生成されます)

実行可能ファイルは、すべてあなたが記載されているソースファイルのニーズをコンパイルしたいです。

add_executable(hello_worldのsrc / hello_world.cppのsrc / main.cppに)

11、target_link_libraries(実行ファイル名$ {PROJECT_NAME})

これは、必要な実行可能なライブラリを追加します(一般的にだけで生成されたプロジェクトライブラリである)、例えば、我々は(命名規則:LIB +名前+そう)libm.soを使用し、ライブラリー「M」の名前を追加します

12、セット(<変数> <値> [CACHE <タイプ> <ドキュメント文字列> [FORCE] | parent_scopeを】

指定された値にCMAKE変数

SET(CMAKE_BUILD_TYPEリリース)

ドイツの動作モードの比較的高い要求がある場合、コンパイル方法をリリースするように設定し、リリースを選択することをお勧めします

以下のような:

IF(NOT CMAKE_BUILD_TYPE)

        SET(CMAKE_BUILD_TYPEリリース)

13、AUX_SOURCE_DIRECTORY(SRCのDIR_SRCS)

ソースディレクトリ

 

14、cmake_policy

CMakeの管理ポリシーの設定

 

 

次のようにC ++プロジェクトを作成します。

$ MKDIR hellotest

$のCD hellotest

$ MKDIRビン#実行可能ファイルストレージ・パス

.soのファイルストレージ・パスを結果として$ MKDIR LIB#

$ MKDIRは#ヘッダファイルストレージのパスを含めます

$ MKDIR SRC#ソースファイルストレージ・パス

$ MKDIRビルド#コンパイラファイル・ストレージ・パス

$タッチCMakeLists.txt

$ CDのビルド

$ cmakeの..

$メイク

 

 

リトル詳細版:https://www.cnblogs.com/52php/p/5681745.html

 

おすすめ

転載: www.cnblogs.com/doggod/p/12610098.html