Qt6.4.2下CMake创建的QML项目无法编译求助
Qt6.4.2下CMake QML项目编译失败问题解决
问题背景
环境:Qt Creator 10.0.0,基于Qt 6.4.2(MSVC 2019,x86_64)
更新至Qt6.4.2后,使用CMake创建的新QML项目无法编译,但通过.pro文件创建的Widget项目可正常编译。
项目CMakeLists.txt代码
cmake_minimum_required(VERSION 3.16) project(untitled7 VERSION 0.1 LANGUAGES CXX) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Qt6 6.4 REQUIRED COMPONENTS Quick) qt_standard_project_setup() qt_add_executable(appuntitled7 main.cpp ) qt_add_qml_module(appuntitled7 URI untitled7 VERSION 1.0 QML_FILES Main.qml ) set_target_properties(appuntitled7 PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE TRUE WIN32_EXECUTABLE TRUE ) target_link_libraries(appuntitled7 PRIVATE Qt6::Quick ) install(TARGETS appuntitled7 BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
编译错误信息
Running E:\Qt\Tools\CMake_64\bin\cmake.exe -S C:/Users/xxx/Documents/untitled7 -B C:/Users/xxx/Documents/build-untitled7-Desktop_Qt_6_4_3_MSVC2019_64bit-Debug in C:\Users\xxx\Documents\build-untitled7-Desktop_Qt_6_4_3_MSVC2019_64bit-Debug. CMake Error at CMakeLists.txt:3 (project): project could not find requested file: C:/Users/xxx/Documents/build-untitled7-Desktop_Qt_6_4_3_MSVC2019_64bit-Debug/.qtc/package-manager/auto-setup.cmake CMake Error at E:/Qt/Tools/CMake_64/share/cmake-3.24/Modules/FindThreads.cmake:66 (message): FindThreads only works if either C or CXX language is enabled Call Stack (most recent call first): E:/Qt/Tools/CMake_64/share/cmake-3.24/Modules/CMakeFindDependencyMacro.cmake:47 (find_package) E:/Qt/6.4.3/msvc2019_64/lib/cmake/Qt6/QtPublicDependencyHelpers.cmake:33 (find_dependency) E:/Qt/6.4.3/msvc2019_64/lib/cmake/Qt6/Qt6Dependencies.cmake:24 (_qt_internal_find_third_party_dependencies) E:/Qt/6.4.3/msvc2019_64/lib/cmake/Qt6/Qt6Config.cmake:112 (include) CMakeLists.txt:7 (find_package) CMake Error at CMakeLists.txt:7 (find_package): Found package configuration file: E:/Qt/6.4.3/msvc2019_64/lib/cmake/Qt6/Qt6Config.cmake but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT FOUND. -- Configuring incomplete, errors occurred! CMake process exited with exit code 1. Elapsed time: 00:00.
解决方案
修正Qt Kit版本配置
错误日志显示CMake调用的是Qt6.4.3的库文件,但你实际安装的是6.4.2。打开Qt Creator的工具 > 选项 > Kits,检查当前项目使用的Kit,确保其关联的Qt版本为6.4.2,同时验证MSVC 2019编译器路径配置正确。清理构建目录重新配置
删除当前构建目录C:/Users/xxx/Documents/build-untitled7-Desktop_Qt_6_4_3_MSVC2019_64bit-Debug,在Qt Creator中点击项目 > 构建 > 清理项目,之后重新执行构建操作,让CMake重新生成正确的配置文件。显式启用C++语言(可选)
尽管project命令已指定LANGUAGES CXX,若问题仍存在,可在cmake_minimum_required之后、project之前添加以下代码,确保C++语言被正确启用:enable_language(CXX)处理缺失的包管理器配置文件
针对找不到.qtc/package-manager/auto-setup.cmake的错误,可手动在构建目录下创建.qtc/package-manager文件夹,或者在Qt Creator的工具 > 选项 > 项目 > CMake中禁用包管理器的自动配置选项。
内容的提问来源于stack exchange,提问作者MartinZ
相关产品推荐
相关产品推荐

