首先是
pkg_search_module()查找以扩展名.pc
结尾的包配置文件pkg_search_module(some_name REQURED package)
在PKG_CONFIG_PATH
中查找package.pc然后是find_package()
这还有三个版本。一个
set(Package_DIR "/path/")
find_package(Package REQUIRED)
和其他
find_package(Package HINTS "/path" REQUIRED)
和第三个
list(APPEND CMAKE_PREFIX_PATH "/path/)
find_package(Package REQUIRED)
全部查找PackageConfig.cmake或package-config.cmake
然后是FindPackage.cmake。
所有这些都返回库,包含,找到变量等......
cmake中的哪个命令查找FindPackage.cmake?
我是否正确理解了这个概念?
为什么会出现这种复杂情况?
答案 0 :(得分:0)
我正在回答有关linux用户的问题。也许其他人可以在以后再投光。
find_package有两种方法可以找到库并包含目录。默认值为Find<套餐> .cmake。如果没有发现,搜索将回落到<包> Config.cmake。
默认搜索位置为
<prefix>/(lib/<arch>|lib|share)/cmake/<name>*\/
<prefix>/(lib/<arch>|lib|share)/<name>*\/
<prefix>/(lib/<arch>|lib|share)/<name>*\/(cmake|CMake)/
&LT;前缀&gt;是CMAKE_PREFIX_PATH - 如果Package cmakes不在上述默认路径中,则设置的路径。默认&lt;前缀&gt; path是CMAKE_SYSTEM_PREFIX_PATH
MODULE
查找与LT;包&gt; .cmake。
set ( <Package>_ROOT /path/)
find_package(<Package> COMPONENTS lib1 lib2 REQUIRED)
find_package(<Package>)
CONFIG
&LT;包&gt; Config.cmake
set(CMAKE_PREFIX_PATH /path/)
find_package(<Package> CONFIG REQUIRED)
find_package(<Package> REQUIRED)
相关变量存储在
中<Package>_FOUND; <Package>_INCLUDE_DIRS; <Package>_LIBRARY_DIR, <Package>_LIBRARIES