2017-09-16 2 views
0

MariaDBのC/C++コネクタのレシピを作成しようとしています。Yoctoプロジェクトが正しくファイルをインストールしない

Bitbakeはエラーや警告なしに動作しますが、私は私のイメージ内のファイルをチェックすると2欠けがあります:

が異なるの両方があります

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

画像に他のパッケージのランタイム依存性がないため、画像には含まれません。あなたのイメージの中に何かそれらのファイルが必要であることをあなたは本当に確信していますか?静的なlibsとdevファイルは通常、ターゲットイメージの一部ではありません。 – jku

+0

'-dev'と' -staticdev'パッケージは私のイメージに含まれていませんか?私はコンパイルするソースがあるので、それらが必要です。それらがなければ、私は誤りがあります。最終画像にどのように含めることができますか?私は知っている、それは一般的ではない –

+0

あなたはあなたのソース*を*あなたのターゲットをコンパイルしたいということは本当ですか?私は私のビルドマシンでコンパイルするのが好きです... – Anders

答えて

2

画像にだけ特定のパッケージを追加するなどして行うことができる:ここ

レシピありますlocal.conf(または画像のレシピ)にIMAGE_INSTALL_append = " mariadb-dev"と入力します。デバイス上で何かをコンパイルしたいと思うように思えます。あなたが望むことを実行することはほとんどありません(必要なすべての開発ツールとその他の-devパッケージがすべて不足している可能性があります)。

私は本当にあなたのアプリのレシピを書いておらず、なぜYoctoがコンパイルとインストールを処理するのかを提案していないでしょうか?そうしたい場合、local.confにこれを追加すると動作します:

EXTRA_IMAGE_FEATURES += "dev-pkgs tools-sdk" 

イメージにビルドツール(gcc、makeなど)とすべての-devパッケージが追加されます。詳細は、the manualを参照してください。

関連する問題