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

Qt6.6.0与CMake配置报错:无法找到兼容的Qt6配置文件

Qt6.6.0 + CMake构建报错解决

问题描述

使用Qt6.6.0和CMake构建项目时,出现如下CMake错误:

CMake Error at CMakeLists.txt:13 (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:

    D:/Qt6/6.6.0/mingw_64/lib/cmake/Qt6/Qt6Config.cmake, version: 6.6.0 (64bit)

已确认D:/Qt6/6.6.0/mingw_64/lib/cmake/Qt6/Qt6Config.cmake存在,且设置了CMAKE_PREFIX_PATH,但报错未消除。当前CMakeLists.txt内容如下:

cmake_minimum_required(VERSION 3.25)
project(untitled2)

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

set(CMAKE_PREFIX_PATH "D:/Qt6/6.6.0/mingw_64/lib/cmake")

set(QT_VERSION 6.6.0)

find_package(Qt6 COMPONENTS
        Core
        Gui
        Widgets
        REQUIRED)

add_executable(untitled2 main.cpp)
target_link_libraries(untitled2
        Qt::Core
        Qt::Gui
        Qt::Widgets
        )

if (WIN32 AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
    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 Gui Widgets)
        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 ()

解决方案

  • 修正CMAKE_PREFIX_PATH路径:将路径设置为Qt的MinGW根目录,而非lib/cmake子目录。修改后代码:

    set(CMAKE_PREFIX_PATH "D:/Qt6/6.6.0/mingw_64")
    

    CMake会自动在指定前缀路径下搜索lib/cmake目录,直接设置根目录能让CMake正确识别Qt的版本与平台信息。

  • 明确指定Qt版本查找:在find_package时传入定义好的QT_VERSION,避免请求版本为空的问题。修改后代码:

    find_package(Qt6 ${QT_VERSION} COMPONENTS
            Core
            Gui
            Widgets
            REQUIRED)
    
  • 检查工具链兼容性:确保CLion配置的CMake工具链是与Qt匹配的64位MinGW版本。Qt使用mingw_64,所以CLion的Toolchain设置需选择对应MinGW 64位编译器,避免与MSVC或32位MinGW混用导致平台不兼容。

  • 清理CMake缓存并重构:在CLion中通过File -> Reload CMake Project刷新配置,或手动删除项目build目录后重新生成构建文件,清除旧缓存带来的配置冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:10:38