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

Yocto构建Qt6应用报错:无法找到CMAKE_AR(aarch64-poky-linux-gcc-ar)

解决Yocto Kirkstone构建QtQuick应用时CMAKE_AR找不到的问题

问题根源

  1. 禁用默认依赖导致工具链缺失:配方中INHIBIT_DEFAULT_DEPS = "1"会阻止Yocto自动拉取交叉编译必需的工具链组件(如aarch64-poky-linux-gcc-ar)和Qt依赖包。
  2. CMakeLists包含桌面平台冗余配置:Qt Creator生成的默认配置包含MACOSX_BUNDLE、WIN32_EXECUTABLE等桌面专属属性,会干扰嵌入式交叉编译流程。
  3. 配方依赖声明不完整:未明确指定Qt相关依赖,导致构建环境缺少必要的Qt组件支持。

解决方案

1. 修复自定义配方usw.bb

移除禁用默认依赖的配置,明确声明Qt依赖,调整文件路径配置:

SUMMARY = "Custom QtQuick Application"
LICENSE = "MIT"
# 请确保添加LICENSE文件并更新校验值,或根据实际许可证调整
LIC_FILES_CHKSUM = "file://LICENSE;md5=d41d8cd98f00b204e9800998ecf8427e"

FILESEXTRAPATHS:prepend := "${THISDIR}/files:"

SRC_URI = " \
    file://main.cpp \
    file://Main.qml \
    file://WatchItem.qml \
    file://CMakeLists.txt \
"

S = "${WORKDIR}"

PACKAGE_ARCH = "${MACHINE_ARCH}"

# 明确声明Qt依赖组件
DEPENDS = "qtbase qtdeclarative"
inherit qt6-cmake

2. 调整CMakeLists.txt适配嵌入式构建

删除桌面平台专属配置,简化安装规则:

cmake_minimum_required(VERSION 3.16)

project(usw VERSION 0.1 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 适配Yocto提供的Qt6版本,无需硬编码6.4
find_package(Qt6 REQUIRED COMPONENTS Quick)

qt_standard_project_setup()

qt_add_executable(appusw
    main.cpp
)

qt_add_qml_module(appusw
    URI usw
    VERSION 1.0
    QML_FILES Main.qml WatchItem.qml
)

target_link_libraries(appusw
    PRIVATE Qt6::Quick
)

# 仅保留嵌入式平台需要的安装规则
install(TARGETS appusw
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

3. 清理缓存并重新构建

  • 清理目标包的构建状态:
    bitbake -c cleansstate usw
    
  • 单独测试构建自定义包:
    bitbake usw
    
  • 确认构建成功后,再构建完整镜像:
    bitbake core-image-weston
    

4. 可选:手动补充工具链组件(若仍有问题)

如果上述步骤后仍报错,可在local.conf中手动添加工具链任务:

TOOLCHAIN_TARGET_TASK:append = " gcc-ar"

说明

  • 移除INHIBIT_DEFAULT_DEPS是核心修复:Yocto的默认依赖管理会自动处理交叉编译工具链的拉取和配置,禁用后会导致工具链组件缺失。
  • 简化CMake配置可避免桌面平台属性对嵌入式构建的干扰,确保CMake使用Yocto生成的工具链文件正确配置交叉编译环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 11:42:54