find_package的默认搜索路径是什么( )使用cmake时的功能?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了find_package的默认搜索路径是什么( )使用cmake时的功能?相关的知识,希望对你有一定的参考价值。
我还想知道当find_package(<package>)
在Linux(Ubuntu)中找到<package>
时设置的默认变量?
答案
将我的评论转化为答案
如果你必须将它融化在“最重要的一条”路径上,那么CMake's own module path将包含预装的Find...
模块。
将CMake指向自定义路径的最重要的全局变量变量是CMAKE_MODULE_PATH
。
如果你想查看CMake在你的情况下搜索哪些目录,只需打电话
cmake -D CMAKE_FIND_DEBUG_MODE=ON ..
整个“搜索算法”记录在find_package()
command documentation中:
- 在cmake特定的缓存变量中指定的搜索路径。如果传递
NO_CMAKE_PATH
,则可以跳过此操作:CMAKE_PREFIX_PATH CMAKE_FRAMEWORK_PATH CMAKE_APPBUNDLE_PATH
- 在cmake特定的环境变量中指定的搜索路径。如果传递
NO_CMAKE_ENVIRONMENT_PATH
,则可以跳过此操作:<package>_DIR CMAKE_PREFIX_PATH CMAKE_FRAMEWORK_PATH CMAKE_APPBUNDLE_PATH
- 搜索
HINTS
选项指定的路径。应使用PATHS
选项指定硬编码猜测。- 搜索标准系统环境变量。如果传递
NO_SYSTEM_ENVIRONMENT_PATH
,则可以跳过此操作:PATH
- 搜索存储在CMake用户包注册表中的路径。如果传递
NO_CMAKE_PACKAGE_REGISTRY
或将CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY
设置为TRUE
,则可以跳过此操作。- 搜索当前系统的Platform文件中定义的cmake变量。如果传递
NO_CMAKE_SYSTEM_PATH
,则可以跳过此操作:CMAKE_SYSTEM_PREFIX_PATH CMAKE_SYSTEM_FRAMEWORK_PATH CMAKE_SYSTEM_APPBUNDLE_PATH
- 搜索存储在CMake System Package Registry中的路径。如果传递
NO_CMAKE_SYSTEM_PACKAGE_REGISTRY
或将CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY
设置为TRUE
,则可以跳过此操作。- 搜索
PATHS
选项指定的路径。这些通常是硬编码的猜测。
以上是关于find_package的默认搜索路径是什么( )使用cmake时的功能?的主要内容,如果未能解决你的问题,请参考以下文章
CMake基础教程(26)find_package搜索包完成库链接和头文件添加(module模式)
Cmake中find_package命令的搜索模式之配置模式(Config mode)
Cmake中find_package命令的搜索模式之模块模式(Module mode)