CLion:找不到包“Qt6"的配置文件与请求的版本“"兼容的 [英] CLion: Could not find a configuration file for package "Qt6" that is compatible with requested version ""

查看:172
本文介绍了CLion:找不到包“Qt6"的配置文件与请求的版本“"兼容的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将 Qt 6.0.2 与 CLion 一起使用.我收到一个奇怪的错误,指出:CMakeLists.txt:20 (find_package) 处的 CMake 错误:找不到包Qt6"的配置文件那是兼容的具有请求的版本".好像没有填写要求的版本,但我不知道在哪里填写要求的版本.+

I am trying to use Qt 6.0.2 with CLion. I get a strange error that states: "CMake Error at CMakeLists.txt:20 (find_package): Could not find a configuration file for package "Qt6" that is compatible with requested version ""." It seems like the requested version is not filled in but I do not know where to fill in the requested version.+

这是我的 CMakeLists.txt 文件的代码:

This is my code for my CMakeLists.txt file:

cmake_minimum_required(VERSION 3.17)
project(jerseytraffic)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

set(QT_VERSION 6)
set(REQUIRED_LIBS Core)
set(REQUIRED_LIBS_QUALIFIED Qt6::Core)

add_executable(${PROJECT_NAME} main.cpp)

if (NOT CMAKE_PREFIX_PATH)
    message(WARNING "CMAKE_PREFIX_PATH is not defined, you may need to set it "
            "(-DCMAKE_PREFIX_PATH=\"path/to/Qt/lib/cmake\" or -DCMAKE_PREFIX_PATH=/usr/include/{host}/qt{version}/ on Ubuntu)")
endif ()

find_package(Qt${QT_VERSION} COMPONENTS ${REQUIRED_LIBS} REQUIRED)
target_link_libraries(${PROJECT_NAME} ${REQUIRED_LIBS_QUALIFIED})
if (WIN32)
    set(DEBUG_SUFFIX)
    if (CMAKE_BUILD_TYPE MATCHES "Debug")
        set(DEBUG_SUFFIX "d")
    endif ()
    set(QT_INSTALL_PATH "${CMAKE_PREFIX_PATH}")
    if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
        set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
        if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
            set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
        endif ()
    endif ()
    if (EXISTS "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll")
        add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
                COMMAND ${CMAKE_COMMAND} -E make_directory
                "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
        add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
                COMMAND ${CMAKE_COMMAND} -E copy
                "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll"
                "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
    endif ()
    foreach (QT_LIB ${REQUIRED_LIBS})
        add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
                COMMAND ${CMAKE_COMMAND} -E copy
                "${QT_INSTALL_PATH}/bin/Qt${QT_VERSION}${QT_LIB}${DEBUG_SUFFIX}.dll"
                "$<TARGET_FILE_DIR:${PROJECT_NAME}>")
    endforeach (QT_LIB)
endif ()

这是工具链中MinGW配置的图片

Here is a picture of the MinGW configuration in Toolchains

推荐答案

来自 Qt 6 文档:

要使 find_package 成功,CMake 必须找到 Qt 安装.您可以通过不同的方式向 CMake 介绍 Qt:

For find_package to be successful, CMake must find the Qt installation. There are different ways you can tell CMake about Qt:

  • 设置 CMAKE_PREFIX_PATH 环境变量以包含 Qt 6 安装前缀.
  • 设置 CMake 缓存变量 CMAKE_PREFIX_PATH 以包含 Qt 6 安装前缀.

例如需要如下代码:

set(CMAKE_PREFIX_PATH "D:/SDK/Qt/6.0.1/msvc2019_64/lib/cmake/")

这篇关于CLion:找不到包“Qt6"的配置文件与请求的版本“"兼容的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆