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
相关产品推荐
相关产品推荐

