You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CLion配置Qt6遇版本兼容错误,调整CMake版本仍未解决

解决CLion中Qt6 CMake版本兼容错误

问题描述

在CLion中配置Qt6.5.5(MinGW 64位)环境时,CMake报错无法找到兼容的Qt6配置文件,尽管指定路径下存在Qt6Config.cmake文件:

CMake Error at CMakeLists.txt:11 (find_package):
  Could not find a configuration file for package "Qt6" that is compatible
  with requested version "".

  The following configuration files were considered but not accepted:

    C:/Qt/6.5.5/mingw_64/lib/cmake/Qt6/Qt6Config.cmake, version: 6.5.5 (64bit)

对应的CMakeLists.txt代码如下:

cmake_minimum_required(VERSION 3.28)
project(untitled)

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

set(Qt6_DIR "C:/Qt/6.5.5/mingw_64/lib/cmake/Qt6")

find_package(Qt6 COMPONENTS
        Core
        CONFIG
        REQUIRED)

add_executable(untitled main.cpp)
target_link_libraries(untitled
        Qt6::Core
)

if (WIN32 AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
    set(DEBUG_SUFFIX)
    if (MSVC AND 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 Core)
        add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
                COMMAND ${CMAKE_COMMAND} -E copy
                "${QT_INSTALL_PATH}/bin/Qt6${QT_LIB}${DEBUG_SUFFIX}.dll"
                "$<TARGET_FILE_DIR:${PROJECT_NAME}>")
    endforeach (QT_LIB)
endif ()

解决方案

1. 确保工具链与Qt版本完全匹配

这是最常见的触发原因:Qt安装的是MinGW 64位版本,但CLion当前使用的是32位MinGW、MSVC或其他不匹配的工具链。

操作步骤:

  • 打开CLion的File > Settings > Build, Execution, Deployment > Toolchains
  • 选中与Qt版本对应的MinGW 64位工具链(Qt安装时可选择附带安装对应版本的MinGW)
  • 将该工具链设为默认,或在当前项目的CMake配置中指定使用该工具链

2. 修正CMakeLists.txt的find_package语法

当前find_package的参数顺序有误,且未指定Qt版本,导致CMake无法正确匹配配置文件。修改为以下两种方式之一:

方式一:明确指定Qt版本并调整参数顺序

# 替换原find_package代码
find_package(Qt6 6.5 REQUIRED COMPONENTS Core)

方式二:使用CONFIG模式并指定版本

# 替换原find_package代码
find_package(Qt6 6.5 CONFIG REQUIRED COMPONENTS Core)

3. 改用CMAKE_PREFIX_PATH指定Qt路径(可选)

手动设置Qt6_DIR容易出现路径层级错误,推荐使用CMAKE_PREFIX_PATH让CMake自动查找Qt配置:

# 替换原set(Qt6_DIR ...)代码
set(CMAKE_PREFIX_PATH "C:/Qt/6.5.5/mingw_64")

4. 验证配置

修改完成后,点击CLion顶部的File > Reload CMake Project重新加载配置。若仍有错误,查看CMake控制台输出,确认工具链路径、Qt路径是否完全匹配。

内容的提问来源于stack exchange,提问作者Codrut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 13:33:27