【发布时间】:2016-04-21 08:47:17
【问题描述】:
我有一个必须为主机和目标构建的包 (openssl)。它创建了一些 .so 和 .a 库,其他一些包分别在运行时和编译时需要这些库。
当我为目标编译这个包时,一切正常,每个文件最终都在我告诉它去的地方,但是当我为主机(${PN}-native 目标)编译时,它只是没有将库放入主机 sysroot 目录 (./build/tmp/sysroot/x86_64-linux)。
这是食谱:
SUMMARY = "Secure Socket Layer"
SECTION = "libs/network"
LICENSE = "openssl"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4004583eb8fb7f89"
branch = "yocto"
SRC_URI = "git://www.myserver.com/openssl.git;protocol=ssh;branch=${branch}"
SRCREV = "${AUTOREV}"
S = "${WORKDIR}/git"
BBCLASSEXTEND += "native nativesdk"
# This is because I am porting this package from other project and I can't modify it.
FILES_${PN} += "${libdir}/libssl.so ${base_libdir}/libcrypto.so"
FILES_SOLIBSDEV = ""
do_compile() {
${MAKE}
}
do_install() {
DESTDIR=${D} ${MAKE} install
}
谁能告诉我我做错了什么?提前致谢
【问题讨论】:
-
是否有理由不在 OE-Core 中使用 openssl 配方?
-
是的,我正在将我的项目从其他(非常老旧的)构建工具移植。他们要求我坚持旧版本中使用的软件包和构建程序。之后,我们将开始修改和替换包。这就是我发送
.so文件的原因。 -
你在哪里告诉构建工具在哪里安装二进制文件?看起来它假设 prefix=/usr 并且你没有告诉它,这是本机构建所必需的,因为 $prefix 是本机构建的重定位方式。
标签: yocto bitbake openembedded