問題タブ [precompiled-headers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - GCC でプリコンパイルされたヘッダー
プリコンパイル済みヘッダーを GCC で動作させることに成功した人はいますか? 私の試みはうまくいきませんでしたし、セットアップ方法の良い例もあまり見たことがありません。cygwin gcc 3.4.4 を試し、Ubuntu で 4.0 を使用しました。
c++ - CMake でプリコンパイル済みヘッダーを使用する
CMake でプリコンパイル済みヘッダーのサポートをいくつかハッキングすることについて、ネット上でいくつかの (古い) 投稿を見てきました。それらはすべてどこにでもあるように見え、誰もが独自のやり方を持っています。現在それを行う最良の方法は何ですか?
c++ - stdafx.h を必要とせずに VC++ でプリコンパイル済みヘッダーを使用する方法はありますか?
単体テストを作成する必要があるレガシー コードがたくさんあります。どこでもプリコンパイル済みヘッダーを使用するため、ほとんどすべての .cpp ファイルが stdafx.h に依存しているため、テストを作成するために依存関係を解消することが難しくなっています。
私の最初の本能は、ほとんどの場合 #include ディレクティブを含むこれらの stdafx.h ファイルをすべて削除し、必要に応じてそれらの #includes をソース ファイルに直接配置することです。
これは、プリコンパイル済みヘッダーが停止する場所を決定するために stdafx.h のようなファイルを持つことに依存しているため、プリコンパイル済みヘッダーをオフにする必要があります。
stdafx.h 依存関係なしでプリコンパイル済みヘッダーを保持する方法はありますか? この問題にアプローチするより良い方法はありますか?
c++ - stdafx.h がそのように動作するのはなぜですか?
いつものように、自分で理解できない何かで頭が混乱しているときは、皆さんに助けを求めます :)
今回は、なぜ stdafx.h がこのように機能するのか疑問に思っていました。私の理解では、それは2つのことを行います:
- 私たちが(?) 使用する可能性があり、めったに変更されない標準ヘッダーが含まれて います
- コードがプリコンパイルされなくなったときのコンパイラ ブックマークとして機能します。
さて、これら 2 つのことは、私には 2 つの非常に異なるタスクのように思えますが、なぜそれらを処理するために 2 つの別々の手順を実行しなかったのでしょうか? #pragma-command でブックマーク処理を行い、必要に応じて windows.h の長い行のヘッダー ファイルを使用して、頻繁に使用されるヘッダーをインクルードするのが合理的だと思われます...ポイント: stdafx.h を介して頻繁に使用されるヘッダーをインクルードする必要があるのはなぜですか? 個人的には、よく使用するヘッダーで、まだ独自のインクルードを行っていないものを認識していませんが、これらのヘッダーは .dll の生成に必要なのでしょうか?
事前にThx
c++ - C++ にクロスプラットフォームのプリコンパイル済みヘッダー フレームワーク/メソッドはありますか?
クロスプラットフォーム (Linux と Windows) のプリコンパイル済みヘッダーを C++ で実装した経験のある人は何をしているのでしょうか。Visual Studio で stdafx.h ファイルを使用して何ができるかを考えています。これにより、大量の C++ コードのコンパイル時間を大幅に改善できます。これは、全体で使用される一般的なヘッダー (std/boost/etc ヘッダー) をプリコンパイルすることによって実現します。ある種のフレームワークなどを使用してクロスプラットフォームでこれを実現する方法はありますか?
これをやろうとして、どのような経験をしましたか?
編集
実際に結果として得られる pch を共有するという意味ではありません。pch を生成できるフレームワークと、その特定のプラットフォームでコンパイルされたときに gcc などと同等のものに関心があります。
c++ - VisualStudioのプロジェクト間でプリコンパイル済みヘッダーを共有する
多くのVisualC++プロジェクトを使用したソリューションがあり、すべてPCHを使用していますが、プロジェクト固有のニーズに合わせて特定のコンパイラスイッチをオンにしているものもあります。
これらのプロジェクトのほとんどは、それぞれのstdafx.h(STL、ブーストなど)で同じヘッダーのセットを共有します。プロジェクト間でPCHを共有できるかどうか疑問に思っています。そうすれば、プロジェクトごとにすべてのPCHをコンパイルする代わりに、ソリューション内のほとんどのプロジェクトで使用できる共通のPCHを1つ持つことができます。
PCHの場所をプロジェクト設定で共有場所として指定することは可能であると思われるので、これでうまくいくと思います。また、共有PCHを使用するすべてのプロジェクトのすべてのソースファイルが同じコンパイラ設定である必要があると想定しています。そうでない場合、コンパイラはPCHとコンパイルされるソースファイルの間の不整合について文句を言います。
誰かがこれを試しましたか?それは機能しますか?
関連する質問:そのようなシャードPCHは過度に包括的である必要がありますか、それとも全体的なビルド時間を損なうでしょうか?たとえば、共有PCHには、広く使用されている多くのSTLヘッダーを含めることができますが、一部のプロジェクトでは、とだけが必要な場合が<string>
あり<vector>
ます。共有PCHを使用することで節約された時間は、ビルドプロセスの後の時点で、オプティマイザーがPCHによってプロジェクトにドラッグされた未使用のものをすべて破棄する必要があるときに返済する必要がありますか?
c++ - stdafx.h: いつ必要になりますか?
stdafx.h を含む非常に多くのコードが表示されます。たとえば、プリコンパイル済みヘッダーは必要ありません。そして、必要なすべてのシステム ヘッダーを自分で手動でインクルードします。その場合、必要な場所を認識しておくべき他の正当な理由はありますstdafx.h
か?
c++ - プリコンパイル済みヘッダーに何を入れるか?(MSVC)
プリコンパイル済みヘッダーファイルの最適な候補は何ですか?テンプレートがある場合でも、STLヘッダーとBoostヘッダーをそこに配置できますか?そして、それはコンパイル時間を短縮しますか?また、コンパイル時間を短縮するための最適なIDE設定は何ですか?
c++ - プリコンパイル済みヘッダー(C / C ++)を使用する理由
プリコンパイル済みヘッダーを使用するのはなぜですか?
回答を読んで、私が彼らとやってきたことはちょっとばかげていると思います:
c++ - エラーC1854:オブジェクトファイルのプリコンパイル済みヘッダーの作成中に形成された情報を上書きできません
これについてMSDNを参照すると、次の情報が得られます。
同じファイルに/Yc(プリコンパイル済みヘッダーを作成)オプションを指定した後、/ Yu(プリコンパイル済みヘッダーを使用)オプションを指定しました。特定の宣言(__declspec dllexportを含む宣言など)により、これは無効になります。
この場合、dllexportとプリコンパイル済みヘッダーを使用しています。誰かが以前にこれに遭遇し、回避策を知っていますか?この問題に光を当てるための入力は大歓迎です。
ありがとう