2011-08-11 2 views

答えて

3

何らかの形で、既存のオブジェクトファイルを削除すると、最初は別々の翻訳単位を持つという目的を逸してしまいます。標準のビルド環境では、通常、対応するソースファイルより古いオブジェクトファイルのみを再構築する必要があります。 (削除する必要はありません。上書きするだけです)

リビジョン管理システムが適切であれば、変更されたファイルの古いバージョンをチェックアウトしても、ディスク上の実際のファイルは現在のタイムスタンプ実際には、何かが矛盾するかもしれないと心配しているなら、いつでもビルドツリー全体をクリーンアップしてやり直すことができます。しかし、通常のコード作成の問題として、オブジェクトファイルを削除することは非常に無駄に見えるでしょう。

もちろん、ビルドオプションごとに1組のオブジェクトファイル(debug vs releaseなど)を保持する必要があります。いくつかのビルド環境では複数の出力ディレクトリを持つことができますが、グローバルビルドの設定を変更した場合には(cmakeのような)ビルド環境は自動的にすべてを再ビルドしますが、特に注意してください。ビルドプロセスの途中です。

3

1)はい、2)いいえ、しかし、それは時計であるコンパイラではありません。これはビルドシステム(IDEまたはwell-written makefile)です。

4

ソースファイルを以前のバージョンに戻すと、.oのソースが新しい日付になり、コンパイラにフィードされないことがあります。ソースファイルを元に戻す理由があれば、ほぼ確実にオブジェクトを再構築したいと思うでしょう。クリーンなビルドを行うことで、あなたが思っていることを得ることができます。

関連する問題