CMakeの使用を開始したばかりで、両方にfind_package
とfind_library
。そして、これは私を混乱させます。誰かがプログラミングの世界でのパッケージとライブラリの違いを説明できますか?または、CMakeの世界では?
皆さん、感謝します!
プロジェクトでzlibを使用する場合、ヘッダーファイル_zlib.h
_とライブラリ_libz.so
_(Linuxの場合)を見つける必要があるとします。低レベルのcmakeコマンド_find_path
_および_find_library
_を使用して検索するか、find_package(ZLIB)
を使用できます。後者のコマンドは、zlibを使用するために必要なものをすべて見つけようとします。追加のマクロ定義または依存関係にすることができます。
更新、_find_package
_の詳細:CMakeコマンドfind_package(SomeThing)
が呼び出されると、 ドキュメンテーション が言うように、2つの可能性があります:モジュールモード(ファイル_FindSomeThing.cmake
_を検索する)、または構成モード(_SomeThingConfig.cmake
_という名前のファイルを検索する)です。 ZLIBの場合、_FindZLIB
という名前のモジュールがCMake自体に同梱されています(私のLinuxマシンでは、_/usr/share/cmake/Modules/FindZLIB.cmake
_ファイルです)。このモジュールは、CMake APIを使用してデフォルトの場所でZLIBファイルを検索するか、自動的に見つからない場合はユーザーに場所を要求するCMakeスクリプトです。