cmakeの使用2

CMakeのサポート、大文字、小文字、大文字と小文字のコマンド。
1 ヘッダファイルディレクトリINCLUDE_DIRECTORIESを追加します。
構文:include_directoriesを([AFTER | 前】[SYSTEM] dir1の[DIR2 ...])
と等価であるG ++オプション- 役割Iパラメータでなく、同等の環境変数のパスを増やします役割CPLUS_INCLUDE_PATH変数。
include_directories(.. /../../thirdparty/comm/ 含める)を
 2 ライブラリファイルにディレクトリLINK_DIRECTORIESリンクする必要が追加。
(にdirectory1 directory2 ...)link_directoriesを:文法
Gと同等である - ++のコマンドLオプションの役割増加LD_LIBRARY_PATH環境変数は、アクションのパスに相当します。
link_directories(" /ホーム/サーバ/ THIRD、/ libに" 3 ライブラリディレクトリFIND_LIBRARY下さい。
文法:ショート -hand署名がIS 

find_library( <VAR> 名1 [パス1パス2 ...])
一般的な署名がある

find_library(
           <VAR> 
          名前 | [NAME2 ...] [NAMES_PER_DIR] NAME1 NAMES 
          [パス2 ... ENVの[パス1ヒントVAR ]] 
          [ PATHSパス1 [パス2 ... ENVのVAR ]] 
          [PATH_SUFFIXES suffix1 [suffix2 ...]] 
          [DOC " キャッシュのドキュメント文字列" ] 
          [NO_DEFAULT_PATH] 
          [NO_CMAKE_ENVIRONMENT_PATH] 
          [NO_CMAKE_PATH] 
          [NO_SYSTEM_ENVIRONMENT_PATH] 
          [NO_CMAKE_SYSTEM_PATH]
          [CMAKE_FIND_ROOT_PATH_BOTH | 
           ONLY_CMAKE_FIND_ROOT_PATH | 
           NO_CMAKE_FIND_ROOT_PATH] 


の例は以下のとおりである。
FIND_LIBRARY(RUNTIME_LIB RT /は/ usr / usr / local / libディレクトリNO_DEFAULT_PATH libには)
ありませんすべてのディレクトリは、RUNTIME_LIB値がNO_DEFAULT_PATHに割り当てられる場合cmakeのは、ディレクトリになります
4 ライブラリファイルのパスlINK_LIBRARIESリンクする必要が追加
構文を:
link_libraries(LIBRARY1 <デバッグ|最適化> Library2 ...) が直接フルパスで
link_libraries( " /ホーム/サーバ/ THIRD、/ libに/ libcommon.a")
以下の#の例唯一のライブラリ名、cmakeのは、自動的に検索含まれているディレクトリに移動します
link_librariesを(iconvの)

変数に#パス
link_libraries($ RUNTIME_LIB {})は、複数のリンクすることができます
link_libraries(/opt/MATLAB/R2012a/bin/glnxa64/libeng.so  /opt/MATLAB/R2012a/bin/glnxa64/libmx.soが

リンクすることができ、中間スペースで区切られた複数あってもよい。
5 あなたはライブラリファイルのtARGET_LINK_LIBRARIESリンクする設定の名前
構文を:
target_link_libraries( <目標> [ITEM1 [ITEM2 [...]]] [|最適化| [デバッグ全般] <項目> ] ...) 書き込むことができ、次の
target_link_libraries(MYPROJECTのCOMM)ライブラリlibhello.so#接続、デフォルトの優先ダイナミックリンクライブラリ
target_link_libraries(MYPROJECT libcomm.a)#表示リンクスタティックライブラリ
target_link_libraries(MYPROJECT libcomm.so)#表示ダイナミックリンクライブラリ

#もう一つの例:
target_link_libraries(MYPROJECT libcomm.so)#ライブラリの名前を書き込むことができます。
target_link_libraries(MYPROJECTのCOMM)
target_link_libraries(MYPROJECT - 。lcomm)

。6 。プロジェクトは、オブジェクトファイルを生成する
構文:
add_executableを( <名前> [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL]ソース1 [ソース2 ...])
次のように簡単な例である:
add_executable(デモmain.cppに)
。7 最後に完全な例掲示
cmake_minimum_required(バージョン2.6 

INCLUDE_DIRECTORIES(.. /../thirdparty/ COMM)

FIND_LIBRARY(COMM_LIB COMM ... /../thirdparty/comm/ のlib NO_DEFAULT_PATH)
FIND_LIBRARY(RUNTIME_LIB RTは/ usr / libに/ / usr / local LIB NO_DEFAULT_PATH)

link_libraries($ {$ {RUNTIME_LIB COMM_LIB}})

ADD_DEFINITIONS(
 -03 -g -W -ウォール
  -Wunused -Wunused-パラメータ可変機能が-Wunused -Wunused
  -Woverloaded- -Wno-廃止予定の仮想 -Wwrite- 文字列
  -D__WUR = -D_REENTRANT -D_FILE_OFFSET_BITS = 64 - DTIXML_USE_STL 


add_library(lib_demo 
        cmd.cpp 
        グローバルた.cpp 
        md5.cpp 

link_libraries(lib_demo)
add_executable(デモ
        main.cppに

#図書館リンクでの 静的MODEの
target_link_libraries(デモlibuuid.a)

以外には、cmakeのは、メイクファイルを生成し使用した後、edit_cacheは、コンパイラオプションを編集することができ作る
文書を見つけることがコマンドに精通していない、アドレス助けるために公式文書cmake3.0投稿
HTTPSを:// cmakeの。 ORG / cmakeの/ヘルプ/ V3.0 / index.htmlを

 

おすすめ

転載: www.cnblogs.com/lovebay/p/11238654.html