2011-08-11 1 views
0

Androidのさまざまなリリースを比較しようとすると、ディスク容量が不足しています(それぞれ、ビルド後に約6-7Gがかかります)。 make(make cleanに似ています)には、すべての中間の.objファイルを削除し、ターゲットだけを残すオプションがあると思いました。しかし、私はそれが何であるか覚えていなかった。またはそのようなオプションはありますか?objファイルを削除するだけのメイクファイルオプションがありますが、ターゲットはそのままですか?

答えて

1

メークファイルは、書き込まれたものを何でも行います。 cleanターゲットはMakeファイルの規則ではなく、Makeの機能です。メイクファイルには、cleanルールは必要ありません。 cleanルールがあり、それがうまく書かれていれば、消去したいファイルをきれいにするでしょう、ひどく書かれていれば、それがどれほどひどくそれを混乱させる可能性に制限はありません。

メイクファイルを作成(または編集)する場合は、オブジェクトファイルを削除するためのルールを入れることができます。他の人が書いたメイクファイルを使用している場合は、そのようなルールを持っているか、そうでないかのどちらかです。

+0

私は質問を投稿したときに私は精神的なブロックを持っていたと思います。はい、それはすべてmakefile自体の実装方法に依存します。今私は数年前に使ったmakefileに "clean-obj"ターゲットが実装されていることを思い出しました。 – wyt168

+0

もちろん、makefileの実装は重要ですが、より多くの点で明らかです。 @Jacek Koniecznyが書いたが、説明しなかったので、makefileが暗黙ルールを使用している場合、暗黙的に作成されたファイルは自動的に削除されます。たとえば暗黙のルールの連鎖を使用して.cファイルからa .outファイルを何らかの暗黙の.oファイルで置き換えます。しかし、明示的に暗黙的なファイルの1つを言及すると、明示的に削除するか、または自動的に削除されるために.INTERMEDIATEに追加する必要があります。だから、オブジェクトファイルの削除を思い出した機能がこれかもしれません。 – hmijail

1

おそらく、.INTERMEDIATE指令が役立つでしょう。 2つ目の違いは、 `RM -f」を印刷することにより、あなたに削除 が報告された場合make' _does_ create B in order to update something else, it deletes B later on after it is no longer needed. Therefore, an intermediate file which did not exist before メイク「がmake'. makeは後にも存在しない」ということである

:GNUのドキュメント(10.4暗黙のルールのチェーンを)作りますどのファイルが表示されているかを確認するコマンドです。 削除中です。

通常、ファイルは、 メークファイルの対象または前提条件に記載されている場合、中間にすることはできません。しかし、 の特別なターゲット `.INTERMEDIATE 'の前提条件としてリストすることで、ファイルを中間としてマークすることができます。これは、ファイルが別の方法で明示的に言及された であっても有効です。

関連する問題