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

如何让Yocto将剥离后的可执行文件复制到tmp/deploy/images?

解决Yocto复制剥离后可执行文件到deploy目录的问题
  • 直接复制目标安装目录下的文件
    Yocto编译完成后,会在${D}(目标安装目录)中生成剥离调试信息后的可执行文件,而编译目录${B}下保留的是带调试信息的大体积版本。修改你的do_deploy函数,直接从${D}路径复制:
do_deploy() {
    # 创建目标部署目录
    install -d ${DEPLOYDIR}/images/${MACHINE}
    # 复制剥离后的可执行文件
    install -m 0755 ${D}/usr/bin/your_executable ${DEPLOYDIR}/images/${MACHINE}/
}

其中${DEPLOYDIR}对应tmp/deploy路径,${MACHINE}是你的机器架构子目录,替换/usr/bin/your_executable为你实际的可执行文件安装路径。

  • 确认配方继承基础类并开启剥离
    确保你的配方继承了base类(多数配方默认已继承),它会自动处理文件剥离。同时检查STRIP变量未被禁用,默认配置为:
STRIP = "${TARGET_PREFIX}strip"

如果手动关闭过剥离,可在配方中重新启用:

INHIBIT_PACKAGE_STRIP = "0"
  • 验证文件状态
    构建完成后,可通过以下路径对比文件大小:

    • 剥离后文件:tmp/work/${MACHINE}/your_recipe/version/image/usr/bin/your_executable
    • 未剥离文件:tmp/work/${MACHINE}/your_recipe/version/build/your_executable
      确认前者体积更小,即为正确的剥离版本。
  • 配置meta-swupdate包含目标文件
    在meta-swupdate的更新配置中,添加你部署到tmp/deploy/images/${MACHINE}下的可执行文件路径,确保生成cpio时会纳入该文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 05:02:10