2017-09-16 3 views
0

Ich versuche, ein Rezept für den C/C++ Connector von MariaDB zu erstellen.Yocto Projekt Dateien nicht richtig installieren

Bitbake funktioniert ohne Fehler oder Warnungen, aber wenn ich die Dateien in meinem Bild überprüft es zwei fehlen:

  • libmariadbclient.a
  • libmariadb.so

Es gibt sowohl in verschiedenen Pakete (-dev und -staticdev), aber aus welchem ​​Grund auch immer, werden nicht zu meinem Bild geliefert.

Hat jemand eine Lösung? Hier

ist das Rezept:

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 
} 
+0

Sie werden nicht in Ihrem Image ausgeliefert, da kein anderes Paket in Ihrem Image eine Laufzeitabhängigkeit von diesen Paketen aufweist. Bist du sicher, dass etwas in deinem Image diese Dateien benötigt? Statische libs und dev-Dateien sind normalerweise nicht Teil eines Ziel-Images. – jku

+0

Also die '-dev' und' -staticdev' Pakete sind nicht in meinem Image enthalten? Ich brauche sie, da ich eine Quelle zum kompilieren habe. Ohne sie habe ich Fehler. Wie kann ich sie in mein endgültiges Bild aufnehmen? Ich weiß, es ist nicht üblich –

+0

Meinst du wirklich, dass du deine Quellen * auf * deinem Ziel kompilieren willst? Ich würde es vorziehen, auf meiner Build-Maschine zu kompilieren ... – Anders

Antwort

2

nur ein bestimmtes Paket zu Bild hinzufügen kann mit beispielsweise durchgeführt werden IMAGE_INSTALL_append = " mariadb-dev" in Ihrer local.conf (oder Bildrezept). Es klingt so, als ob Sie etwas auf dem Gerät kompilieren möchten, so dass es unwahrscheinlich ist, dass Sie das tun, was Sie wollen (Sie würden immer noch alle Entwicklungstools und alle anderen -dev-Pakete, die Sie benötigen, vermissen).

Ich würde nicht wirklich vorschlagen, auf dem Bild zu entwickeln (warum nicht ein Rezept für Ihre App schreiben und lassen Yocto das Kompilieren und die Installation stattdessen?), Aber wenn Sie es tun möchten, sollte das hinzufügen in local.conf funktionieren :

EXTRA_IMAGE_FEATURES += "dev-pkgs tools-sdk" 

Dies fügt Tools (gcc, make, etc.) und alle -dev-Pakete auf das Bild aufzubauen. Weitere Informationen finden Sie unter the manual.

Verwandte Themen