Yocto错误:"非调试包包含.debug目录"与yocto配方

 kanlikanliti_627 发布于 2023-02-10 11:34

我正在尝试构建一个自定义的yocto配方,它涉及编译一个小的C程序.在构建期间 -

$ bitbake -f interface-configuration
...
ERROR: QA Issue: non debug package contains .debug directory: interface-configuration path /work/cortexa9hf-vfp-poky-linux-gnueabi/interface-configuration/0.1-r0/packages-split/interface-configuration/etc/interfaces/bin/.debug/set
ERROR: QA run found fatal errors. Please consider fixing them.
ERROR: Function failed: do_package_qa
ERROR: Logfile of failure stored in: /home/git/poky/build-atmel/tmp/work/cortexa9hf-vfp-poky-linux-gnueabi/interface-configuration/0.1-r0/temp/log.do_package.28986
ERROR: Task 10 (/home/git/poky/meta-atmel/recipes-intelli/interface-configuration/interface-configuration_0.1.bb, do_package) failed with exit code '1'

我想知道这里是否有人知道如何禁用调试信息或删除QA检查.到目前为止,谷歌搜索错误已经证明毫无结果.

干杯

使用interface-configuration.bb进行更新

DESCRIPTION = "Interface configuration files and tools"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
SRC_URI = "file://interface-configuration-0.1.tar.gz"

do_compile() {
    install -vd ${D}/
    ${CC} -g0 set.c -o set
    # CC is arm-poky-linux-gnueabi-gcc -march=armv7-a -marm -mthumb-interwork -mfloat-abi=hard -mtune=cortex-a9 --sysroot=/home/git/poky/build-atmel/tmp/sysroots/sama5d3xek
}


do_install() {
    cp -r ${S}/etc ${D}/etc
    install -vd ${D}/etc/interfaces/bin
    install -vm 0755 set ${D}/etc/interfaces/bin/
}

do_install_append() {
    # I added this to try to remove the error - it doesn't work
    rm -rf ${D}/etc/interfaces/bin/.debug
}

FILES_${PN} += "/etc/interfaces/MANIFEST \
    /etc/interfaces/conf/A \
    /etc/interfaces/conf/B \
    /etc/interfaces/conf/C \
    /etc/interfaces/conf/D \
    /etc/interfaces/template/A \
    /etc/interfaces/template/B \
    /etc/interfaces/template/C \
    /etc/interfaces/template/D \
    /set.c"

silvio.. 14

Yocto/OE .debug在放置二进制文件的目录下生成一个目录.您使用二进制(install -vm 0755 set ${D}/etc/interfaces/bin)的非默认目录.您需要声明.debug转到-dbg包.

你现在有两个选择.首先使用标准目录,${D}/usr/bin或者第二次将.debug添加到dbg - 这样的包:

FILES_${PN}-dbg += "/etc/interfaces/bin/.debug"

您可以删除您,do_install_append因为.debug之后创建了do_install.

如果使用第二个选项,则需要set debug-file-directory directories在gdb中配置gdb 选项以调试二进制文件.在这里阅读更多

2 个回答
  • Yocto/OE .debug在放置二进制文件的目录下生成一个目录.您使用二进制(install -vm 0755 set ${D}/etc/interfaces/bin)的非默认目录.您需要声明.debug转到-dbg包.

    你现在有两个选择.首先使用标准目录,${D}/usr/bin或者第二次将.debug添加到dbg - 这样的包:

    FILES_${PN}-dbg += "/etc/interfaces/bin/.debug"
    

    您可以删除您,do_install_append因为.debug之后创建了do_install.

    如果使用第二个选项,则需要set debug-file-directory directories在gdb中配置gdb 选项以调试二进制文件.在这里阅读更多

    2023-02-10 11:35 回答
  • .debug目录是作为split_and_strip_files函数的一部分自动生成的meta/classes/package.bbclass.

    此函数获取由此产生的文件do_install并将它们拆分为多个包:${PN}包含基本文件和剥离的二进制文件,${PN}-dbg带有调试符号等.

    您可以split_and_strip_files通过在.bb文件中添加以下内容来抑制:

    INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
    INHIBIT_PACKAGE_STRIP = "1"
    

    我想你也想简化从你生成的包列表.bb:

    PACKAGES = "${PN}"
    

    2023-02-10 11:38 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有