yocto生成/lib64的符号链接



我有一个自己编写的nodejs配方,因为我需要一个特定的版本。在配方中,我生成了一个从/lib64到/lib的符号链接。当符号链接不存在时,我在设备上运行节点时出错。

do_install () {
# Create a symbolic link for the lib64 lib path
install -d ${D}/lib
ln -s /lib ${D}/lib64
}
FILES_${PN} += "/lib64"

我在构建历史中看到链接存在,但当我构建图像时,我总是会遇到以下失败。

| /home/rail/yocto/build/tmp/work/odobox_e3900-poky-linux/odobox-developer-image/1.0-r0/recipe-sysroot-native/usr/sbin/prelink: Could not record directory /lib/modules-load.d: No such file or directory
| WARNING: exit code 1 from a shell command.
| DEBUG: Python function do_image finished
| ERROR: Function failed: prelink_image (log file is located at /home/rail/yocto/build/tmp/work/odobox_e3900-poky-linux/odobox-developer-image/1.0-r0/temp/log.do_image.3534)

这个问题还有别的解决办法吗?!

向哈拉尔致以最良好的问候

Yocto推出了新的链接工具"lnr";

我在相扑构建环境中创建了一个配方示例(lnr示例(:

LICENSE = "CLOSED"
SRC_URI = "file://lnr.bin"
FILES_${PN} += "/lib64"
FILES_${PN} += "/lib"
S = "${WORKDIR}"
do_install() {
install -d ${D}/lib/
install ${S}/lnr.bin ${D}/lib
lnr ${D}/lib/ ${D}/lib64
}

在构建了示例之后;图像";文件夹:

$ ls -l tmp/work/aarch64-poky-linux/lnr-example/1.0-r0/image
drwxr-xr-x 2 talel talel 4.0K مارس  30 10:44 lib/
lrwxrwxrwx 1 talel talel    3 مارس  30 10:44 lib64 -> lib/

请记住,您还需要打包/lib,因为如果它包含一些内容,它将失败,问题是/lib的父任务没有打包,错误如下:

文件'/无法将lib64/lnr.bin"打包到"lnr example"中,因为其父目录结构不存在。其母公司之一directories是一个符号链接,其目标目录不包含在包裹

并且,添加(IMAGE_INSTALL_append="lnr example">(没有问题。

最新更新