在CMake中,FIND_PACKAGE
命令用于查找并加载一个外部项目或库的配置文件。这个命令有几个选项可以控制其行为,其中REQUIRED
和QUIET
是两个常用的选项。
REQUIRED
当你在FIND_PACKAGE
命令中加入REQUIRED
选项时,如果指定的包没有被找到,CMake将停止处理并报错,阻止生成过程继续进行。这确保了依赖包必须被找到,否则项目配置将失败。例如:
find_package(Boost REQUIRED)
这行代码会尝试找到Boost库,如果找不到,CMake会报错并停止处理。
QUIET
QUIET
选项的作用是在查找包时抑制标准输出。通常,如果没有找到包,CMake会输出一些信息告诉你它没有找到。使用QUIET
选项可以阻止这些信息的显示,使得输出更加干净。例如:
find_package(OpenGL QUIET)
即使找不到OpenGL,也不会在CMake的输出中显示未找到的信息。
结合使用
find_package(Qt5 REQUIRED QUIET)
这行代码会尝试找到Qt5库,如果找不到,CMake会报错,并且不会在标准输出中显示未找到的信息。
示例
假设你正在使用一个项目,该项目依赖于两个库:Boost和OpenCV。你可以这样写:
find_package(Boost REQUIRED)
find_package(OpenCV REQUIRED QUIET)
这里,Boost是必需的且如果找不到会报错,而OpenCV同样是必需的但如果在寻找过程中不希望看到未找到的信息,可以使用QUIET
选项。