cmakeの設定リンクライブラリプロジェクト

CMakeのは、優れたC / C ++プロジェクトのビルドツールです。C / C ++プロジェクトでは、多くの場合、このようなブースト、luajitなどなど、いくつかのサードパーティのライブラリを使用します。そして、CMakeのではC / C ++ライブラリは、エンジニアリングを導入基本的に3つの方法があります。

find_package
find_package cmakeのは、findコマンドを使用して、ネイティブライブラリです。以下を使用

find_package(ブーストREQUIRED)
find_package(SDL2 REQUIRED)
これらの変数のIF(Boost_FOUND)#なし標準名は、どのような変数を見てCMakeCache.txtを生成します。
メッセージ(ステータスが"ブースト見出さ")
ENDIF()
include_directories($ Boost_INCLUDE_DIRSは{})#これは確かに、変数の型、ヘッダーファイル、ディレクトリになり
target_link_libraries(CruleEngine "$ {SDL2_IMAGE_LIBRARY} #") これは、ライブラリの位置である
1
2
3
4
図5は、
6
7
仕事で主にUNIXでこの検索窓にはほとんど役に立ちません。実際には、ライブラリファイルを対応する場所を見つけるために、構成ファイルを.cmakeされます。自分自身をCMakeのいくつかのよく知られているライブラリは、ブーストなどの設定ファイルを、.cmake建て。
どのような具体的な支援を通じて、

--help-モジュール・リストにはcmakeの
1
以下のURLで、またはビューの詳細を
https://cmake.org/cmake/help/v3.0/manual/cmake-modules.7.html
し、使用したい他のライブラリの言葉をサポートしていません。 、他の人が利用できないプロジェクトで自分自身を見ることができます。他の誰かが提供している場合は、プロジェクトディレクトリに次をコピーすることができ、次のようにモジュールのディレクトリを指定しました。

セット(CMAKE_MODULE_PATH「$ {PROJECT_SOURCE_DIR} /モジュール/」)#1 モジュールのプロジェクトのルートフォルダ
1
find_path&find_library
このコマンドは、指定されたファイルを含むファイルを検索するために使用されます。次の例のように

find_path(GLIB_INCLUDE名はPATH_SUFFIXES「のglib-2.0」をglib.h)
1
ここでは/usr/include/glib-2.0ディレクトリ内での位置、その後、glib.hファイルを見つけることです、我々は、検索プレフィックスのglibを追加しましたので、 -2.0ディレクトリを検索します。デフォルトでは、それはいくつかのディレクトリ以下のシステムを検索し、時にはあなたはまた、検索にいくつかの特定のパスを指定することができます。

find_path(GD_INCLUDE glib.h PATH_SUFFIXES NAMES "のGLib-2.0"
PATHSは/ usr /ローカルの/ usr /含ま
NO_DEFAULT_PATHを)
。1
2
。3
、ここで、このようなNO_DEFAULT_PATHは、いくつかのデフォルトのディレクトリを検索する必要はありません。しかし、パスを検索することがパスを指定しました。あなたが検索ディレクトリを指定しない場合はもちろん、特定のビュー検索するデフォルトのディレクトリが存在します
https://cmake.org/cmake/help/v3.0/command/find_path.htmlを

同様にfind_library。たとえば、次のようにglib2.0ライブラリを見つけるために、例を示します。

#下のLinux
SET(CMAKE_FIND_LIBRARY_PREFIXES "LIB")#プレフィックス設定のライブラリ
( ".A "の.so" CMAKE_FIND_LIBRARY_SUFFIXES SET ")#は、 ライブラリの接尾辞を設定
find_library(GLIB_LIB NAMES "のGLib-2.0")
Windowsで#接頭辞と接尾辞
SETを( CMAKE_FIND_LIBRARY_PREFIXES "")
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".LIB" "の.dll")
。1
2
3
4
5
6
7は
表示でき
https://cmake.org/cmake/help/v3.0/command/find_library.htm

FindPkgConfig
これ自体はライブラリファイルのpkg-configコマンドで見つけることができるのUnix / Linuxでは、下のライブラリーを見つけるための方法である、次のように、その使用があります

`++ luabind.cpp -o luabind G-設定--cflags --libs luajit` PKG
1
及びCMakeのは、以下の方法を使用して、このようにカプセル化されている見つけます

(FindPkgConfig)#ロードFindPkgConfig関数が含ま
pkg_check_modules(XCBのXCB REQUIRED)#の検索XCBライブラリ
target_link_libraries(アプリの$ {XCB_LDFLAGS}) #のXCBリンクライブラリ
1
2
3
このアプローチは、通常のLinuxのパッケージ管理をインストールすることにより、PKGインデックスファイルを提供するために、ライブラリを必要とすることに注意をライブラリには、このファイルになります。
その他の具体的な情報を見ることができます
https://cmake.org/cmake/help/v3.0/module/FindPkgConfig.html

おすすめ

転載: www.cnblogs.com/wangshuyi/p/12155677.html