Yocto Project没有正确安装文件
问题描述:
我正在尝试为MariaDB的C/C++连接器创建一个配方。Yocto Project没有正确安装文件
BitBake的工作没有错误或警告,但如果我检查了文件在我的形象有两个缺失:
- libmariadbclient.a
- libmariadb.so
有不同都包(-dev和-staticdev),但无论出于何种原因,都没有发送到我的映像。
有人有解决方案吗?
这里是配方:
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
file://win/packaging /license.rtf;md5=0b6c50a153e2fca0364c97805d74ba50 \
file://cmake/COPYING-CMAKE-SCRIPTS;md5=54c7042be62e169199200bc6477f04d1"
SRC_URI = "http://mirror2.hs-esslingen.de/mariadb//connector-c-3.0.2/mariadb-connector-c-3.0.2-src.tar.gz;name=source"
SRC_URI[source.md5sum] = "2eb5ba004ac105eebb538ead352c0c78"
SRC_URI[source.md256sum] = "518d14b8d77838370767d73f9bf1674f46232e1a2a34d4195bd38f52a3033758"
S = "${WORKDIR}/mariadb-connector-c-3.0.2-src"
DEPENDS = "zlib openssl gnutls krb5 curl"
PACKAGES =+"${PN}-include"
FILES_${PN}+="${libdir}/mariadb/libmariadb.so.3 \
${libdir}/mariadb/plugin/dialog.so \
${libdir}/mariadb/plugin/mysql_clear_password.so \
${libdir}/mariadb/plugin/remote_io.so \
${libdir}/mariadb/plugin/auth_gssapi_client.so \
${bindir}/mariadb_config"
FILES_${PN}-dev+="${libdir}/mariadb/libmariadb.so"
FILES_${PN}-staticdev+="${libdir}/mariadb/libmariadbclient.a"
FILES_${PN}-include+="${includedir}/mariadb/mariadb_com.h \
${includedir}/mariadb/mysql.h \
${includedir}/mariadb/mariadb_stmt.h \
${includedir}/mariadb/ma_pvio.h \
${includedir}/mariadb/ma_tls.h \
${includedir}/mariadb/mariadb_version.h \
${includedir}/mariadb/ma_list.h \
${includedir}/mariadb/errmsg.h \
${includedir}/mariadb/mariadb_dyncol.h \
${includedir}/mariadb/mariadb_ctype.h \
${includedir}/mariadb/mysqld_error.h \
${includedir}/mariadb/mysql/client_plugin.h \
${includedir}/mariadb/mysql/plugin_auth_common.h \
${includedir}/mariadb/mysql/plugin_auth.h \
${includedir}/mariadb/mariadb/ma_io.h "
RDEPENDS_${PN}+="${PN}-include"
inherit cmake
do_compile() {
make
}
答
添加只是一个特定的包到图像可以与例如进行你的local.conf(或图像配方)中的IMAGE_INSTALL_append = " mariadb-dev"
。这听起来像你想在设备上编译一些东西,所以这不太可能达到你想要的(你仍然会缺少所有的开发工具和所有其他的-dev包)。
我真的不建议在图像上进行开发(为什么不为你的应用程序编写配方,让Yocto来处理编译和安装呢?),但是如果你想这样做,在local.conf中添加这个应该可以工作:
EXTRA_IMAGE_FEATURES += "dev-pkgs tools-sdk"
这将构建工具(gcc,make等)和所有-dev包添加到图像。有关更多详细信息,请参见the manual。
它们不在图像上发运,因为图像中没有其他软件包对这些软件包有运行时依赖性。你是否真的确定图像中的某些东西需要这些文件?静态库和开发文件通常不是目标映像的一部分。 – jku
那么'-dev'和'-staticdev'软件包不包含在我的映像中?我需要它们,因为我有一些源代码可以编译。没有他们,我得到错误。我如何将它们包含在最终图像中?我知道,这是不常见的 –
你是否确实意味着你想在你的目标上编译源代码?我宁愿在我的编译机器上编译... – Anders