web-dev-qa-db-ja.com

単に「make」ではなく「make clean」を使用する必要がある場合の一般的なルールはありますか?

私は現在複数ファイルのプログラムを書いており、どういうわけか(ほとんどの状況で直感的に行う必要があると直感的に考えると) 'make'だけを実行すると、プログラムが失敗します。問題の詳細を提供できると思いますが、重要なことは、「make clean」を使用したときに実行されることです。だから、誰かが「make」だけでなく「make clean」を実行するための一般的な経験則を知っているのかと思っていました

11
Dark Templar

2つの状況でmake cleanを実行します-ソースコードをパッケージ化する場合(したがって、ビルドされたオブジェクトを必要としない/必要としない場合)ORビルドされたと信じる理由がある場合オブジェクトは不良です。

あなたのケースでは、バグの多いMakefileの結果である可能性が高い問題を修正するために「make clean」を使用しています。何かが必要なときに再コンパイルされていないため、出力バイナリが不良になっています。

プロジェクトの複雑さ、およびmakeの使用方法に応じて、発生する可能性のある多くの理由がありますが、その要点は、Makefileのデバッグに時間をかける必要があることです。

17
Michael Kohne

マイケル・コーネの回答一般に同意します。 「make clean」が実際に何をするかを知るために、インストールドキュメントを読む必要があると付け加えます。 「make realclean」や「make distclean」など、使用する必要があるさまざまなレベルのクリーンが存在する可能性があります。これらには非公式の慣習がありますが、石に刻まれたものはありません。

8
Bill Ruppert

これはあなたのプロジェクトであることを理解しているので、makefileです。私の目標は、makealwaysが正しいビルドを生成できるようにすることです。 make cleanはいくつかの状態から回復するために必要ですが、私の意見ではmakefileは間違っているため、修正する必要があります。依存関係が正しく計算されている場合、単純なmakeで、再コンパイルする必要があるすべてを再コンパイルする必要があります。

5
kevin cline

私は毎晩のビルドの前に「make clean」を実行しました。その場合、フルビルドを実行するのにかかる追加の時間はおそらくそれほど重要ではありませんが、すべてが正しいバージョンであることを確認することで得られる追加の安全性は、おそらくそれだけの価値があります。

1
Zachary K