我在CMakeLists.txt中定义了一个变量,如下所示:
set(MY_PROJECT_DEPENDENCIES boost-core boost-optional sqlite3)
我想使用find_package()检查是否找到了,如下所示:
find_package(MY_PROJECT_DEPENDENCIES REQUIRED)。
但这是行不通的。对于同样的问题有什么解决方法吗?
编辑:就像drescherjm建议的那样,使用foreach循环可以完美地工作。以下是代码片段:
macro(find_packages)
foreach(package ${ARGN})
find_package(${package} REQUIRED)
endforeach()
endmacro()使用以下命令调用它:
find_packages(${MY_PROJECT_DEPENDENCIES})```发布于 2020-04-06 04:06:38
您的问题是MY_PROJECT_DEPENDENCIES是一个列表,您试图在这些列表上使用find_package,但find_package需要单独的PackageName
因此,您的变通方法是为每个包调用find_package (使用the列表中的循环),并在macro中定义它以便于使用。
https://stackoverflow.com/questions/61046289
复制相似问题