petalinux add pre-build application to rootfs compile faliure solution

Vivado Petalinux版本:2018.3

1. 按照UG1144 -> Chapter 7 Customizing the Rootfs -> Including Prebuilt Applications建立mygpio,结果编译无法通过,解决方法

1. Create an application with the following command.
$ petalinux-create -t apps --template install --name myapp --enable

2. Change to the newly created application directory.
$ cd <plnx-proj-root>/project-spec/meta-user/recipes-apps/myapp/files/

3. Remove existing myapp app and copy the prebuilt myapp into myapp/files directory.
$ rm myapp

$ cp <path-to-prebuilt-app> ./

编译rootfs

cmd:petalinux-build -c rootfs

如下报错:

ERROR: mygpio-1.0-r0 do_package: QA Issue: File '/usr/bin/mygpio' from mygpio was already stripped, this will prevent future debugging! [already-stripped]
ERROR: mygpio-1.0-r0 do_package: Fatal QA errors found, failing task.
ERROR: mygpio-1.0-r0 do_package: Function failed: do_package
ERROR: Logfile of failure stored in: /home/Kevin/petaprojects/xilinx-zc706-2018.3/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/mygpio/1.0-r0/temp/log.do_package.50070
ERROR: Task (/home/Kevin/petaprojects/xilinx-zc706-2018.3/project-spec/meta-user/recipes-apps/mygpio/mygpio.bb:do_package) failed with exit code '1'

解决方法:

mygpio.bb  添加如下string

INSANE_SKIP_mygpio = "ldflags"               //备注:mygpio为客户自己建立的app名称,在此example中为mygpio
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"

完整的mygpio.bb 如下:

# This file is the mygpio recipe.
#

SUMMARY = "Simple mygpio application"
SECTION = "PETALINUX/apps"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = "file://mygpio
"

S = "${WORKDIR}"


INSANE_SKIP_mygpio = "ldflags"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"

do_install() {
install -d ${D}/${bindir}
install -m 0755 ${S}/mygpio ${D}/${bindir}
}

重新编译rootfs,通过了

cmd:petalinux-build -c rootfs

End

原文地址:https://www.cnblogs.com/kevin-heyongyuan/p/10905373.html