linux - 无法在 yocto 中安装共享库

标签 linux shared-libraries embedded-linux yocto

我编写了一个构建共享库的方法。这是食谱

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/

相关文章:

c - Malloc 没有失败,但系统内存不足

c - LD_PRELOAD 即使在 unsetenv ("LD_PRELOAD"之后也会影响新的 child )

c# - 使共享库可用于多个应用程序的最佳方法是什么?

embedded-linux - Yocto 对 Chromium Embedded Framework 的支持是什么?

linux - 如何使用参数在远程服务器上执行本地脚本

linux - 我想使用 shell 脚本 linux 在文件中写入一行

linux - 如何设置 crontab 每 10 分钟删除 linux 上日志文件的内容

macos - CMake:MacOS 上动态链接资源的运行时错误(dyld:未加载库)

音频/摄像头驱动程序 - FriendlyARM Mini2440 - s3c2440

linux - 如何在单板计算机上编程