コンパイルスクリプトでは、コンパイルする前に常にオブジェクトファイルを削除する呼び出しがあります。これはビルドプロセスを遅くしますか?コンパイル時にオブジェクトファイルが古くなっているかどうかをチェックするのはコンパイラにとって本当に必要ですか?コンパイルする前にオブジェクトファイルを削除するのはいつですか?
1
A
答えて
3
何らかの形で、既存のオブジェクトファイルを削除すると、最初は別々の翻訳単位を持つという目的を逸してしまいます。標準のビルド環境では、通常、対応するソースファイルより古いオブジェクトファイルのみを再構築する必要があります。 (削除する必要はありません。上書きするだけです)
リビジョン管理システムが適切であれば、変更されたファイルの古いバージョンをチェックアウトしても、ディスク上の実際のファイルは現在のタイムスタンプ実際には、何かが矛盾するかもしれないと心配しているなら、いつでもビルドツリー全体をクリーンアップしてやり直すことができます。しかし、通常のコード作成の問題として、オブジェクトファイルを削除することは非常に無駄に見えるでしょう。
もちろん、ビルドオプションごとに1組のオブジェクトファイル(debug vs releaseなど)を保持する必要があります。いくつかのビルド環境では複数の出力ディレクトリを持つことができますが、グローバルビルドの設定を変更した場合には(cmakeのような)ビルド環境は自動的にすべてを再ビルドしますが、特に注意してください。ビルドプロセスの途中です。
3
1)はい、2)いいえ、しかし、それは時計であるコンパイラではありません。これはビルドシステム(IDEまたはwell-written makefile)です。
4
ソースファイルを以前のバージョンに戻すと、.oのソースが新しい日付になり、コンパイラにフィードされないことがあります。ソースファイルを元に戻す理由があれば、ほぼ確実にオブジェクトを再構築したいと思うでしょう。クリーンなビルドを行うことで、あなたが思っていることを得ることができます。
関連する問題
- 1. なぜ手動でオブジェクトファイルを削除すると、makefileが新しいライブラリをコンパイルしないのですか?
- 2. 作成する前にテーブルを削除しないのはいつですか?
- 3. Antコンパイル:svnリポジトリで削除したクラスファイルを削除するにはどうしたらいいですか?
- 4. 前のマーカーを削除するには?
- 5. glibcを1つのオブジェクトファイルにコンパイルすることができます。
- 6. オブジェクトファイルを削除した場合、makeに再コンパイルしないよう伝えるには?
- 7. 名前のついた列をすべて削除する
- 8. 削除前に関連するレコードを削除するpostgresql
- 9. MAKEFILEを使用してコンパイル前にファイルをコピーしてから削除する
- 10. いつオブザーバーを削除すればよいですか?オブザーバを削除する前にオブジェクトの割り当てを解除する際のエラー
- 11. Informaticaでインデックスを削除する前に
- 12. リポジトリから前のコミットをgitで削除するには?
- 13. ファイルの名前/パスを削除する前に印刷するにはどうすればよいですか?
- 14. いくつかのフラグメントからsearchviewを削除するには?
- 15. テーブルビューから削除する前に確認アラートを削除するデータソース
- 16. テーブルのapiからコンパイルするテーブルtrデータを削除するにはどうすればよいですか?
- 17. ファイルを削除してリストから名前を削除する
- 18. コンパイル時に未使用のコードを削除するには?
- 19. テンプレート以外の過負荷を削除するよりも、テンプレートインスタンシエーションを削除するのはいつですか?
- 20. テキストファイルから名前を削除する
- 21. HTTPリクエストのヘッダのいくつかを削除するには?
- 22. NHibernateは行を削除する前に更新しますか?
- 23. 削除前に削除するファイルのT-SQLデータベースバックアップクリーンアップスクリプトのログ
- 24. なぜSVNいくつかのURLを削除するには
- 25. 'group'という名前のコレクションを削除するには?
- 26. "--track"という名前のgitブランチを削除するには
- 27. データビューの行を削除する前に削除を確認する
- 28. Jupyterから以前のバージョンを削除するには?
- 29. トリガー前にレコードを削除する
- 30. ビルド前にAOSPアプリを削除する