コンパイルを高速化するためにプリコンパイルされたヘッダが使用されていますが、はありますか?はどのファイルに含めるべきですか?たとえば、多くのブーストライブラリを使用するプロジェクトがあるので、ブーストヘッダファイルをstdafx.h
(私はVS2008を使用しています)に含めてください。すべての標準ヘッダファイルもそれらに含めるべきですか?例えば、<vector>
を含めても、実行可能なサイズを増やしますが、std::vector
は使用しませんか?自分のプロジェクトのヘッダーファイルをstdafx.hにインクルードするのは悪い考えですか?プリコンパイルされたヘッダー:やりとりしないでください?
1
A
答えて
3
事前コンパイル済みヘッダーは、実行可能ファイルのサイズには影響せず、コンパイル速度にのみ影響します。それらはあらかじめコンパイルされているので、いつも再コンパイルする必要はありません。 Windows.hはこの機能の主要なベンチャーです。
4
一般に、アプリケーション全体で使用し、頻繁に変更されないすべてのヘッダーファイルは、プリコンパイル済みヘッダーファイルに移動する必要があります。プリコンパイルされたヘッダーファイルがコンパイルされるため、コンパイルが高速になります。
頻繁に変更されるヘッダーファイルを追加すると、あまり変更されないヘッダーファイルがプロジェクト全体を不必要に再コンパイルする可能性があるため、プリコンパイル済みヘッダーファイルのポイントが見付かりません。
具体的には、テンプレートクラスを定義するので、std :: vectorを使用しない場合、オーバーヘッドは大きくなりません。しかし、本当に必要ない場合は、ヘッダファイルを追加することを控えることをお勧めします。コンパイル時にはバイナリサイズのオーバーヘッドがあり、プロジェクトの後半で競合が発生する可能性があります。なぜ、本当に必要ない場合は、何かを追加するのですか?
0
C++の標準ヘッダーファイル、ブーストライブラリヘッダー、および頻繁に使用するサードパーティのライブラリのヘッダーを含めることをお勧めします。これは、実行可能ファイルのサイズには影響しません。
ただし、これらのヘッダーを変更するたびにプロジェクト全体を再構築する必要があるため、自分のプロジェクトのヘッダーは含めないでください。
関連する問題
- 1. ユーザーがiOSでスライダーとやりとりしたときにスクロールしないでください
- 2. keyboard/textfieldsとのやりとりをお手伝いください
- 3. ダウンロードリストビューでもう一度やり直してください
- 4. HTTPヘッダーで画像を圧縮しないでください。
- 5. LinearGradientBrushを繰り返すことをやめてください。
- 6. デバイスとのやり取りにネイティブ(C/C++)ライブラリを使用しないでください。
- 7. gcc 3.3.3でプリコンパイルされたヘッダーがサポートされていますか?
- 8. 質問のこのセクションをやり直してください
- 9. コンパイルをもう一度やり直してください
- 10. ヘッダーが表示されないようにUITableViewをスクロールしてください。
- 11. ウェブサイトでjavascriptやjqueryを使用しないでください。
- 12. JQueryMobile:ヘッダーの高さを高くしないでヘッダーのフォントサイズを増やす
- 13. インデントをあまり設定しないでください
- 14. herokuでプリコンパイルされたアセット(manifest.yml)が検出されない
- 15. jQueryとCSS - 文字を高さで切り捨てないでください
- 16. GCC +のプリコンパイル済みヘッダーでスタックトレースが正しくない
- 17. エラー:object.Finalizeをオーバーライドしないでください。代わりに、デストラクタを提供してください
- 18. 分かりやすい文字がブラウザで正しく表示されない
- 19. 休止して、怠け者になったり怠けたりしないでください。
- 20. パイプを使用して2つの匿名のPythonスクリプト間でデータをやりとりしてください
- 21. テンプレートは現在のランタイムより古いバージョンのハンドルバーでプリコンパイルされました
- 22. 続きを読むとあまり混同しないでください
- 23. javascriptでフォームを折りたたんでください
- 24. ASP.NETページがプリコンパイルされたページで存在するか確認してください。
- 25. ピップインストールされたモジュールをアップグレードする方法はありますが、Djangoはアップグレードしないでください。
- 26. codeigniterの最後のクエリを変更してやり直してください
- 27. Googleマップでマーカーを繰り返さないでください。API V3(JS)
- 28. extjsのブラウザの外にウインドウのヘッダーをドラッグしないでください
- 29. ドラッグしないでください
- 30. Facebookエラー:アプリでエラーが発生しました。後でやり直してください。