Yocto+;自动工具库&x2B;CMake应用程序=链接器错误
我有一个带有自己图层的Yocto BSP,其中包括一个Yocto+;自动工具库&x2B;CMake应用程序=链接器错误,cmake,linker-errors,yocto,autotools,Cmake,Linker Errors,Yocto,Autotools,我有一个带有自己图层的Yocto BSP,其中包括一个autotools3rdy零件库()。 我的应用程序“.bb”文件有以下几行,说明需要libcoap: DEPENDS += "libcoap" RDEPENDDS_${PN} += " libcoap libcoap-dev libcoap-devstatic" 我可以看到库文件正在复制到sysroot: $ ls -l /projects/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angs
autotools
3rdy零件库()。
我的应用程序“.bb”文件有以下几行,说明需要libcoap
:
DEPENDS += "libcoap"
RDEPENDDS_${PN} += " libcoap libcoap-dev libcoap-devstatic"
我可以看到库文件正在复制到sysroot:
$ ls -l /projects/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/coap-playground/1.0-r0/recipe-sysroot/usr/lib/libcoap*
-rw-r--r-- 2 udev udev 286430 Ago 21 13:53 /projects/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/coap-playground/1.0-r0/recipe-sysroot/usr/lib/libcoap.a
lrwxrwxrwx 1 udev udev 173 Ago 29 14:33 /projects/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/coap-playground/1.0-r0/recipe-sysroot/usr/lib/libcoap.so -> ../../projects/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/libcoap/4.1.2+gitAUTOINC+d48ab449fd-r0/image/usr/lib/libcoap.so.4.1.2
-rwxr-xr-x 2 udev udev 38444 Ago 21 13:53 /projects/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/coap-playground/1.0-r0/recipe-sysroot/usr/lib/libcoap.so.4.1.2
不难发现符号链接有点奇怪:
/projects/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/coap-playground/1.0-r0/recipe-sysroot/usr/lib/libcoap.so -> ../../projects/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/libcoap/4.1.2+gitAUTOINC+d48ab449fd-r0/image/usr/lib/libcoap.so.4.1.2
Mylibcoap.bb
包含inherit relative_symlinks
(否则将创建指向“/projects”的绝对链接,bitbake将失败),但创建的符号链接仅将“../../”前置到原始链接
所以。。。问题是:
makeinstall
是否应该在开箱即用的情况下创建一个相对于sysroot的符号链接Makefile
包含:
librootdir = $(DESTDIR)$(prefix)/lib
# ...
ln -s $(librootdir)/$(LIBSO).4.1.2 $(librootdir)/$(LIBSO)
我想$(DESTDIR)
在安装bitbake
时会指向正确的位置
libcoap
)资源
libcoap.bb
基于互联网,非常简单:
SUMMARY = "A C implementation of IETF Constrained Application Protocol (RFC 7252)"
DESCRIPTION = "Libcoap provides an implementation of the IETF CoAP protocol"
HOMEPAGE = "http://sourceforge.net/projects/libcoap/"
SECTION = "libs/network"
PROVIDES = "libcoap"
SRCREV = "d48ab449fd05801e574e4966023589ed7dac500b"
# Lookout for PV bump too when SRCREV is changed
PV = "4.1.2+git${SRCPV}"
LICENSE = "GPLv2 | BSD"
LIC_FILES_CHKSUM = "file://${S}/LICENSE.BSD;md5=1164f52f9c4db2c13f681b201010d518 \
file://${S}/LICENSE.GPL;md5=4641e94ec96f98fabc56ff9cc48be14b"
S = "${WORKDIR}/git"
SRC_URI = "git://git.code.sf.net/p/libcoap/code"
inherit autotools-brokensep relative_symlinks
EXTRA_OECONF += "--with-shared"
EXTRA_OEMAKE += "all"
INSANE_SKIP_${PN} = "ldflags"
BBCLASSEXTEND = "native nativesdk"
CMake与您的问题有何关系?尝试链接
libcoap
的应用程序是CMake'd,我不确定它是否对链接器错误有任何影响。Thaks询问@Tsyvarev