cmake - cmake中find_dependency和find_package的区别?
问题描述
在 package-Config.cmake 中,如果我使用 find_package 而不是 find_dependency,会对我的应用程序产生什么影响?什么情况下会断?
解决方案
根据文档,find_dependency
只是一个包装find_package
:
它旨在用于包配置文件 (
<package>Config.cmake
)。find_dependency
转发传递给原始调用的QUIET和REQUIRED的正确参数。find_package()
指定的任何其他参数都将转发到find_package()
.如果找不到依赖项,它会设置一条信息性诊断消息并调用
return()
以结束调用包配置文件的处理并返回到find_package()
加载它的命令。
如果您使用,例如,find_package(REQUIRED)
而不是find_dependency
,并且找不到包,那么用户将很难理解错误与外部包有关,而不仅仅是与内部包有关。此外,如果外部调用find_package
不使用REQUIRE选项,则使用该选项执行内部调用是不一致的。
推荐阅读
- php - SQLSTATE [42000]:语法错误或访问冲突:1068 定义了多个主键
- javascript - Daypilot如何分块加载数据?
- ruby - 为什么我在部署到 Heroku 时收到“NameError: uninitialized constant Dotenv”?
- numpy - 请告诉我如何将 numpy 转换为 sympy.unit 向量
- python - 将逗号分隔的值转换为熊猫数据框中的整数列表
- html - ASP .NET Core 应用程序在 Visual Studio 2019 中找不到引导程序 5
- attributes - WooCommerce REST API:更新产品变体属性将属性名称和选项设置为 Any:Any
- azure-cosmosdb - 为帐户中的所有集合获取当前预置吞吐量的最快方法?
- jolt - 如何创建 Jolt 规范
- python - 使用 Selenium 和 XPath 进行抓取