我正在尝试创建一个CMakeLists.txt
文件,该文件尝试查找Qt5
,如果失败,则尝试返回到Qt4
安装。到目前为止,该脚本是有效的,但如果没有安装Qt5
,我总是会收到警告。
请注意,FindQt5.cmake
由Qt5
提供,如果仅安装Qt4
,则不可用。
基本结构如下:
cmake_minimum_required(VERSION 2.8.11)
message("-- Searching for Qt5")
find_package(Qt5 COMPONENTS Core Xml Network)
if (Qt5_FOUND)
message("-- Searching for Qt5 - found version ${Qt5Core_VERSION}")
else (Qt5_FOUND)
message("-- Searching for Qt5 - not found")
# ...
endif (Qt5_FOUND)
如果未安装Qt5
(或未正确设置),则警告消息如下:
通过在cmake_MODULE_PATH中不提供"FindQt5.cmake",该项目已要求CMake查找由提供的程序包配置文件"Qt5",但CMake没有找到。
找不到由具有的"Qt5"提供的包配置文件以下任何名称:
nbsp nbsp;Qt5Config.cmake
nbsp nbsp;qt5-config.cmake将安装前缀"Qt5"添加到CMAKE_prefix_PATH或设置"Qt5_DIR"到包含上述文件之一的目录。如果"Qt5"提供了一个单独的开发包或SDK,请确保它已安装。
有没有办法抑制这个警告?我也会接受其他方法来检测是否安装了Qt5
。
为了抑制警告,可以使用QUIET
关键字:
find_package(Qt5 COMPONENTS Core Xml Network QUIET)
find_package
具有CONFIG
和MODULE
参数,用于告诉cmake如何搜索包。
http://www.cmake.org/cmake/help/v3.0/command/find_package.html
http://www.cmake.org/cmake/help/v3.0/manual/cmake-packages.7.html
添加CONFIG
关键字。