1

カスタム Ubuntu カーネルを構築していて、ソース ファイルの 1 つを変更しました。ビルド コマンドを発行すると:

NOEXTRAS=1 skipabi=true skipmodule=true fakeroot debian/rules binary-insp8600

deb は再構築されますが、変更されたソース ファイルは再構築されません。

調子はどう?ソース ファイルを変更するたびに、完全にクリーンなリビルドを行う必要がありますか?

それは意味がありません。

変更されたファイルは./init/main.c.

注記として、binary-insp8600 は、Inspiron 8600 ラップトップ用に作成したカスタム フレーバーです。

4

2 に答える 2

2

debian/rulesカーネル Makefile ではありません。これらの依存関係は実際の Makefile にあるため、編集したファイルが最終的なカーネルの依存関係であることを知る方法はありません。

debian/rules build実際、ターゲット (実際にコンパイルを行うもの) は、ビルドの終了後に作成される「フラグ」ファイルのみに依存すると予想されます。その場合、簡単な回避策はその「フラグ」ファイルを削除することです。次に、すべてを再度コンパイルします(部分的Makefileな再構築を行う方法を知っているカーネルのbuildmake clean

(私はdebian/rulesあなたが使用しているパッケージを見ていないので、間違っているかもしれませんが、少なくともそれは始まりです.)

于 2009-06-29T10:27:05.207 に答える
0

Makefile の依存関係が正しい場合は、クリーン ビルドを行う必要はありません。

変更したファイルはヘッダファイルですか? その後、makedepend を実行して、ヘッダー ファイルの依存関係を自動的に追加する場合:)

ヘッダー ファイルでない場合、それがコンパイルの一部である場合は、実際には Makefile の依存関係である必要があります。検索を行い、使用しているターゲットがコンパイルするモジュールに依存していることを確認してください。

于 2009-06-29T10:19:31.633 に答える