我编写了一个构建共享库的方法。这是食谱
SUMMARY = "test library"
SRC_URI = " file://file1.c \
file://file2.c \
file://internal.h"
LICENSE = "CLOSED"
FILES_${PN} = "libtest.so"
do_compile() {
${CC} -fPIC -c ${WORKDIR}/file1.c -o ${WORKDIR}/file1.o
${CC} -fPIC -c ${WORKDIR}/file2.c -o ${WORKDIR}/file2.o
${CC} -shared -o ${WORKDIR}/libesys.so ${WORKDIR}/file1.o ${WORKDIR}/file2.o
}
do_install() {
install -d ${D}${libdir}
install -m 0644 ${WORKDIR}/libtest.so ${D}${libdir}/
}
失败并出现以下错误:
ERROR: test-0.1-r0 do_package_qa: QA Issue: -dev package contains non-symlink .so: test-dev path '/work/corei7-64-poky-linux/test/0.1-r0/packages-split/test-dev/usr/lib64/libtest.so' [dev-elf]
ERROR: test-0.1-r0 do_package_qa: QA Issue: No GNU_HASH in the elf binary: '/home/jamal/repotest1/build/tmp/work/corei7-64-poky-linux/test/0.1-r0/packages-split/test-dev/usr/lib64/libtest.so' [ldflags]
ERROR: test-0.1-r0 do_package_qa: QA run found fatal errors. Please consider fixing them.
ERROR: test-0.1-r0 do_package_qa: Function failed: do_package_qa
ERROR: Logfile of failure stored in: /home/jamal/repotest1/build/tmp/work/corei7-64-poky-linux/test/0.1-r0/temp/log.do_package_qa.20989
ERROR: Task (/home/jamal/repotest1/sources/meta-test/recipes-support/test/test_0.1.bb:do_package_qa) failed with exit code '1'
能否请您帮我找出问题所在。感谢您的努力。
最佳答案
默认打包规则假设库是有版本控制的,而您的库不是。
要么安装版本库,要么如果你真的不想https://wiki.yoctoproject.org/wiki/TipsAndTricks/Packaging_Prebuilt_Libraries#Non-versioned_Libraries向您展示如何操纵规则。
关于linux - 无法在 yocto 中安装共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52777422/