2017-09-21 481 views
0

FILESEXTRAPATHS_prepend変数にファイルパスを含めても、なぜファイルのパスをSRC_URIにする必要があるのですか。同様:FilesフォルダにbitbakeのSRC_URIとFILESEXTRAPATHS_prependの差

SUMMARY = "Simple Hello application" 
LICENSE = "MIT" 
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" 

FILESEXTRAPATHS_prepend := "${THISDIR}/files:" 

SRC_URI = "file://Hello_1.c \ 
      file://Hello_2.c \ 
       " 

do_compile() { 
     oe_runmake 
} 

do_install() { 
     install -d ${D}${bindir} 
     install -m 0755 Hello ${D}${bindir} 
} 

私は2つのファイルhello1.chello2.cを持っています。私はSRC_URIを削除すると、それは、次のようなエラーが出力さ

ERROR: Hello-1.0-r0 do_compile: oe_runmake failed 

しかし、私は FILESEXTRAPATHS_prependを削除する場合はそれが正常に動作しています。

変数FILESEXTRAPATHS_prependの目的は何ですか?

私のファイルパスをFILESEXTRAPATHS_prependに含めても、SRC_URIを削除するとエラーが発生しますか?

答えて

0

BitBakeは、SRC_URI変数を使用して、場所に関係なく、ソースファイル を指定します。各レシピにはソースを指す変数SRC_URI が必要です。

SRC_URI = file://通常、ローカルマシンからMetadataとともに出荷されるファイルである を取得します。パスは、 FILESPATH変数に関連しています。これにより、ビルドシステム検索、順番に、ディレクトリ内のレシピファイル(.BB) のサブディレクトリであると仮定される 次のディレクトリ、またはファイルから (.bbappend)を追加する常駐:

FILESPATH:OpenEmbeddedビルド システムがパッチおよびファイルを検索するときに使用するディレクトリのデフォルトセット。 プロセスをビルドするとき、BitBakeは指定された の順序でFILESPATHの各ディレクトリを検索し、レシピの各ファイル:// URI で指定されたファイルとパッチを検索します。

FILESPATH変数のデフォルト値は、ソースディレクトリにあるメタ/クラスで見つかった base.bbclassクラスで定義されています

FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \ 
    "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}" 

ないでくださいFILESPATH変数を手で編集します。 BitBakeが最初にFILESPATH変数によって定義された のレシピを処理するときに使用するデフォルトのディレクトリ 。 FILESEXTRAPATHSを使用してFILESPATH を拡張することができます。

>ベスト・プラクティスは、あなたが

FILESEXTRAPATHS .bbappendファイル内から FILESEXTRAPATHSを使用することによって、これを達成することを指示する:はそれとして、ファイルやパッチを探していたときにいるOpenEmbeddedビルドシステム が使用する検索パスを拡張しますレシピを処理し、 ファイルを追加します。 レシピを処理するときにBitBakeが使用するデフォルトのディレクトリは、最初はFILESPATH変数によって定義されます。

あなたのアペンドファイルから SRC_URIステートメントを使用して指定されたファイルをピックアップして、ビルドシステムが必要な場合、また、あなたのアペンドファイル内 からFILESEXTRAPATHS変数を使用して にFILESPATH変数を拡張することを確認する必要があります。戻るあなたのエラーに

http://www.yoctoproject.org/docs/2.1/ref-manual/ref-manual.html#var-FILESPATH

、各レシピにはSRC_URIを持っていなければならないからです。削除しても機能しません。

レシピが.bbappendではないため、FILESEXTRAPATHSを追加することは適切ではなく、必須ではありません。

1

簡単な方法は、上記のパスでmeta-layer/recipes-core/example
1. hellohello.bb
2.ここでhello is a directory having your source and other datahello.bb is recipeを作成したと仮定しましょう。今

SRC_URISRC_URI変数は常にだけhello dir内のデータをチェックします。 FILESEXTRAPATHS_prepend:=「$ {} THISDIR:」:あなたはあなたのレシピにこの行を追加する場合、present directoryで、その後SRC_URI変数をチェックし、データをどこhello.bbファイル存在。 = "$ {THISDIR}/files:"

FILESEXTRAPATHS_prepend

あなたのケースでは、可変

SRC_URIfiles DIR hello.bb現在のデータを確認してください。

Note:大抵の場合、人々は.BBappendファイルのこのFILESEXTRAPATHS変数を使用して、パッチやその他のファイルをレシピに適用します。すべての.BBファイルSRC_URI変数については

さは 、インターネットやローカルからではなく、FILESEXTRAPATHSのいずれかのソースを取得するために書く必要があり、あなたのソース パスに依存します。

関連する問題