树莓派Ubuntu22.04中Qt6构建报错:Unknown CMake command 'qt_standard_project_setup'
问题原因
Ubuntu 22.04官方软件源中提供的Qt6版本为6.2.x,而qt_standard_project_setup()是Qt 6.3及以上版本才新增的CMake辅助命令,你的环境里的Qt版本不支持这个命令,因此会报错。
解决方案
有两种可行的处理方式:
方式一:修改CMakeLists.txt适配Qt 6.2
放弃使用qt_standard_project_setup(),改用Qt 6.2兼容的写法,手动启用Qt的自动代码生成(MOC、UIC、RCC),或者使用qt_add_executable命令。
写法1:启用自动代码生成
修改后的CMakeLists.txt如下:
cmake_minimum_required(VERSION 3.22) project(test LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) # 启用Qt的MOC、UIC、RCC自动处理 set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTORCC ON) find_package(Qt6 REQUIRED COMPONENTS Widgets Core) add_executable(test main.cpp mainwindow.cpp mainwindow.h mainwindow.ui ) target_link_libraries(test PRIVATE Qt6::Widgets )
写法2:使用qt_add_executable命令
qt_add_executable在Qt6.2中已存在,它会自动处理MOC、UIC等步骤,替代add_executable即可:
cmake_minimum_required(VERSION 3.22) project(test LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) find_package(Qt6 REQUIRED COMPONENTS Widgets Core) qt_add_executable(test main.cpp mainwindow.cpp mainwindow.h mainwindow.ui ) target_link_libraries(test PRIVATE Qt6::Widgets )
方式二:升级Qt到6.3及以上版本
如果一定要使用qt_standard_project_setup(),需要手动安装更高版本的Qt:
- 下载Qt官方在线安装器(适配arm64架构),选择安装Qt 6.3或更高版本;
- 构建项目时,确保
CMAKE_PREFIX_PATH指向新安装的Qt路径,比如:cmake .. -DCMAKE_PREFIX_PATH=/path/to/your/qt6.3+/arm64
内容的提问来源于stack exchange,提问作者RedBox
相关产品推荐
相关产品推荐

