测试是否找到所需的包
Test if required package found
假设我需要一个包裹 PX
。
find_package(PX REQUIRED)
if(PX_FOUND)
target_link_libraries(foo PX::lib)
endif()
既然我将包裹标记为REQUIRED
,是否有必要进行测试?有没有什么情况我不能 link PX
?
Since I marked the package as REQUIRED
, is the test necessary?
不,没有必要。如果搜索路径上没有兼容的模块或配置文件设置 <PkgName>_FOUND
,那么 find_package(PkgName REQUIRED)
将立即终止配置步骤。这是一个致命错误。检查变量是没有意义的。你可以安全地写:
find_package(PX REQUIRED)
target_link_libraries(foo PRIVATE PX::lib)
使用 target_link_libraries
时不要忘记设置可见性说明符。
假设我需要一个包裹 PX
。
find_package(PX REQUIRED)
if(PX_FOUND)
target_link_libraries(foo PX::lib)
endif()
既然我将包裹标记为REQUIRED
,是否有必要进行测试?有没有什么情况我不能 link PX
?
Since I marked the package as
REQUIRED
, is the test necessary?
不,没有必要。如果搜索路径上没有兼容的模块或配置文件设置 <PkgName>_FOUND
,那么 find_package(PkgName REQUIRED)
将立即终止配置步骤。这是一个致命错误。检查变量是没有意义的。你可以安全地写:
find_package(PX REQUIRED)
target_link_libraries(foo PRIVATE PX::lib)
使用 target_link_libraries
时不要忘记设置可见性说明符。