2017-11-16 12 views
1

私はターゲットファイルのいくつかのファイルを台無しにしました。だから私はそれを再構築したいと思う。しかし、すべてを再建するわけではありません。buildrootのターゲットだけをクリーニングする方法

make cleanすべての出力、ビルドディレクトリを消去します。 ターゲットディレクトリと関連するすべての.stamp_some_stepファイルだけをoutput/build/structureを通して再帰的に削除するコマンドは、現在の設定に従ってbuildrootにファイルシステムを再アセンブルさせますが、すべてのライブラリとバイナリを何度も再構築しないでください。

+0

私の例を確認してください:https://github.com/howhow/makefile –

+0

relaventファイルを削除して、更新されたlibをビルドして、リンクをもう一度やり直す必要はありません。すべてを再構築する必要はありません。 –

+0

どのようにして、なぜrootをビルドできなかったのでしょうか?つまり、デフォルトのスクリプトに従って、ターゲット内のバイナリだけをクリーンにしてビルドからターゲットに再インストールできますか?ビルドフォルダを削除せずにターゲットにする? – xakepp35

答えて

1

Buildrootには、特定のパッケージのビルドディレクトリを削除する特別なmakeターゲットがありますが、インストールされているファイルには触れません。 user manualを引用すると:

パッケージは設定から​​削除された場合、Buildrootは は特別何もしません。この パッケージによってインストールされたファイルは、ターゲットルートファイルシステムまたはツールチェーンsysrootから削除されません。 このパッケージを取り除くには、完全な再構築が必要です。ただし、 通常、このパッケージを削除する必要はありません。 :次の昼休みを待って、 スクラッチからビルドを再開するのを待つことができます。

つまり、make <PKG-NAME>-dircleanを実行すると、特定のパッケージのビルドファイルを削除できます。たとえば、i2c-toolsのビルドファイルを削除する場合は、make i2c-tools-dircleanを実行します。 <PKG-NAME>-dircleanターゲットはoutput/build/<PKG-NAME>ディレクトリでrm -rfを実行するだけです。これにより、インストールされたファイルはoutput/target/から削除されません。 rootfsからファイルを完全に再構築せずに削除したい場合は、もう一度output/target/rmに移動し、最後にmakeを実行して最終イメージを再生成してください。 Buildrootの設定も、削除しようとしているパッケージを再構築してインストールするように設定されていないことを確認してください。

+0

変更していません通常はビルドプロセスの開始時に行われます \t 3.必要なパッケージリストから各ライブラリを取り出してビルドしようとしますが(すべてビルドされているので、コピーしてください) - ターゲットインストール \t 4.コピーオーバーレイしてから圧縮します \t 5.カーネルに組み込みます(initramfsを使って再構築しますが、これはカーネルのbzImageの単一ファイルに埋め込まれています) – xakepp35

+0

なぜこのようなハーフクリーンコマンドがないのですか?そのような機能を含まない警告ビルドルートのイオン性は?私は開発チームにそのアイデアを提案したいと思いますが、私が逃したものは何かについて議論したいと思いますか? – xakepp35

+0

ここでの説明は、なぜ ' -uninstall'コマンドがサポートされていないのかを理解するのに役立ちます。http://lists.busybox.net/pipermail/buildroot/2013-February/067097.html Buildrootは、 。より洗練されたビルドシステムが必要な場合は、私はYoctoを提案するかもしれません。相違点についての素晴らしい議論はここにあります:https://youtu.be/13LZ0szWSVg –

関連する問題