問題タブ [pch]
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++ - VisualStudioのプロジェクト間でプリコンパイル済みヘッダーを共有する
多くのVisualC++プロジェクトを使用したソリューションがあり、すべてPCHを使用していますが、プロジェクト固有のニーズに合わせて特定のコンパイラスイッチをオンにしているものもあります。
これらのプロジェクトのほとんどは、それぞれのstdafx.h(STL、ブーストなど)で同じヘッダーのセットを共有します。プロジェクト間でPCHを共有できるかどうか疑問に思っています。そうすれば、プロジェクトごとにすべてのPCHをコンパイルする代わりに、ソリューション内のほとんどのプロジェクトで使用できる共通のPCHを1つ持つことができます。
PCHの場所をプロジェクト設定で共有場所として指定することは可能であると思われるので、これでうまくいくと思います。また、共有PCHを使用するすべてのプロジェクトのすべてのソースファイルが同じコンパイラ設定である必要があると想定しています。そうでない場合、コンパイラはPCHとコンパイルされるソースファイルの間の不整合について文句を言います。
誰かがこれを試しましたか?それは機能しますか?
関連する質問:そのようなシャードPCHは過度に包括的である必要がありますか、それとも全体的なビルド時間を損なうでしょうか?たとえば、共有PCHには、広く使用されている多くのSTLヘッダーを含めることができますが、一部のプロジェクトでは、とだけが必要な場合が<string>あり<vector>ます。共有PCHを使用することで節約された時間は、ビルドプロセスの後の時点で、オプティマイザーがPCHによってプロジェクトにドラッグされた未使用のものをすべて破棄する必要があるときに返済する必要がありますか?
c++-cli - C ++ / CLIプリコンパイル済みヘッダー:どのように機能しますか?
いくつかのアンマネージクラスをそれらのマネージドクラスに置き換えるために、混合モードDLLを作成しようとしています。これを「クライアント」と呼びましょう。私の個人用マシンではすべて正常に動作しますが、ソースコードをチェックインすると、ビルドマシンでプロジェクトがビルドされません。「コア」と呼ばれる別のDLLから使用しているマネージクラスを認識しません。
問題はプリコンパイル済みヘッダーに関係していると思います。理由は次のとおりです。
「Core」のクラスを使用するために、「Client」プロジェクトに「Core」プロジェクトへの参照を追加しました。この参照を削除してから、個人のマシンでプロジェクトをビルドしても、引き続き機能します。ただし、CLR PCHは、参照を削除した後は再コンパイルしません。CLR PCHを再コンパイルしてからプロジェクトをコンパイルすると、ビルドマシンで発生するのと同じエラーで失敗します。つまり、管理対象クラスが認識されません。
インポートしたDLLのマネージクラスは、プリコンパイル済みヘッダーで定義されているようです。私はこれを確認することができませんでしたが、それは私が持っている最良の推測です。誰かがこの問題について彼らが流すことができる洞察を持っていますか?混合DLLのプロジェクト参照は、管理対象PCHにフックを配置することで解決されますか?
再現する手順
以下は私には意味がありません:
- クライアントにビルドしてもらいます。
- クライアントからコアへの参照を削除します。クライアントをコンパイルします。クライアントはまだビルドします。これは予期されていません。
- クライアントPCHを再コンパイルしてから、クライアントをコンパイルします。クライアントのコンパイルが失敗します:「コア」のクラスは未定義です。これは予想される動作です。
- コアへの参照を追加し、コンパイルします。同じ理由でコンパイルクライアントが失敗します。これは予期されていません
- クライアントPCHを再コンパイルしてから、クライアントをコンパイルします。クライアントは正常にコンパイルされます。
この実験からの私の結論は、参照はプリコンパイル済みヘッダーを介してプロジェクトに挿入され、少なくともビルドマシンでは、これが機能する方法で何かが壊れているということです。
gcc - 最先端のライブラリとプリコンパイル済みヘッダーのサイズ
Q1: 私の GCC プリコンパイル済みヘッダーは 150 mb を占めます -- はい、Boost の不明瞭な TMP ライブラリを使用しています。この大きな PCH から利益を得るヒントはありますか? RAMディスク(tmpfs)または何か(透過的/オンザフライ)を作成するために使用できるmakefileスニペットはありますか?
Q2: GCC をデーモン化する方法はありますか? -- 結局、アクティブのままであれば、毎回 PCH をリロードする必要はありません。
Q3: (a) C++0x は、TMP プログラムのより良い表現を可能にする特定の改善によってこの問題を削減しますか? (b) あるいは、CLANG はコンパイル プロセスに変更をもたらすでしょうか?
ps、MSVCCはGCCよりもはるかに優れています。
pss、GCC が PCH を取得していないのではないかと疑っています。
c++ - 1 つのプロジェクトで複数の PCH ファイルを使用できますか?
PCH ファイルを使用してビルドを高速化したいので、PCH ファイルを別のフォルダーに保存し、後でプロジェクトをビルドするときに再利用します。
しかし、stdafx.h に #import *.dll がいくつかあります。したがって、*.dll で何かが変更された場合は、PCH ファイルを再作成する必要があります。
私の質問は、1 つのプロジェクトで複数の PCH ファイルを使用できるかどうかです。これにより、インポート *.dll を別の PCH に配置し、*.dll で何かが変更された場合にのみこれを再作成できます。
前もって感謝します :)
iphone - Objective-C Xcode: Prefix.pch の質問?
互いに独立した 2 つのファイルがあります。
それを Class1 と Class2 と呼びましょう。
Class1 には Class2 が必要で、Class2 には Class1 が必要です。
すべてのファイルを含む接頭辞ファイルがありますが、いくつかの構文エラーが発生します。
相互に使用できるように、両方をどのように定義しますか?
私は何を間違っていますか?
ios - iOS Prefix.pch のベスト プラクティス
iOS プロジェクトの Prefix.pch にさまざまな便利なマクロを追加する多くの開発者を見てきました。
iOS Prefix.pch ファイルに追加することを推奨する (または推奨しない) ものは何ですか? Prefix.pch はどのように見えますか?
objective-c - XCode PCH エラー
私が知る限り、これは以前に尋ねられたことはありません。私はココア タッチ スタティック ライブラリを構築していますが、プロジェクトを SVN にチェックインした直後に昨日まで問題なく動作していましたが、ビルドされなくなり、PCH に 36 個のエラーが発生しました。これが私のPCHのすべてであり、過去に問題はありませんでした。
そして、私はこれらのエラーを受け取ります:
いくつかのこと:
UIKit フレームワークを使用していないのに、uikit 関連のエラーが発生するのはなぜですか?
MYPROJECT のジャンクで申し訳ありませんが、プロジェクトは現在機密です。
よろしくお願いします
iphone - Prefix.pchファイルのコンパイルエラー、より大きな問題の原因
アップデート2
「BaseSDK」を「iOSSimulator3.2」(iPad ???)に変更しても、ビルドと分析を行ってもこのエラーが発生しないことを発見しました...しかし、これはiPhoneアプリであるはずです。XCode 3.2.4を実行しています...プロジェクトを作成するときに何かが足りませんか?ターゲットデバイスとしてiPhoneを選択していますが、何が起こっているのかわかりません。
オリジナル
iPhoneアプリでメモリリークを見つけるのに問題があります。「Build&Analyze」を実行しようとしましたが、MyApp_Prefix.pchファイルに到達すると、「Analyzerは解析エラーのためにこのファイルをスキップしました」と表示されます。その後のファイルの50%は「解析エラーのためにこのファイルをスキップしました」と表示されます。 --/ var / folder /.../MyApp_Prefix.pchファイルが見つかりません」。
アプリは実際にコンパイルおよび実行され、Prefix.pchファイルは存在します。
最初のエラーの下に表示されるすべてのエラーを開くと、フレームワークにあるファイルが開き始めますが、なぜそこに何か問題があるのかわかりません。

.pchファイルの内容は次のとおりです。
更新 これは、「関数宣言子の後に期待される関数本体」、「期待されるタイプ」などをクリックしたときに開くファイルです。CGPDFContext.h UIView.h UIApplication.h UITextView.h UIWebView.h
これらはすべてフレームワークにあります。
まったく新しいプロジェクトを作成して既存のクラスをインポートしようとしましたが、同じエラーが発生しました。
同じフレームワークを使用する古いプロジェクトの1つでBuild&Analyzeを実行してみましたが、正常に実行されます。
c++ - Xcode PCH の問題 - PCH のアイテムがソース ファイルに含まれていない
Xcode を使用して「C++ 標準動的」ライブラリ プロジェクトを作成し、LLVM 2.0 を使用してコンパイルしました。PCH ファイルには次の行#include <iostream>が含まれていますが、ファイルTest.cpにもその#include <iostream>ステートメントが含まれています。
奇妙なことに、Test.cpSemantic Issue – Use of undeclared identifier 'std'のステートメントを削除すると、そのステートメントが PCH にも含まれているにもかかわらず、ビルドがエラーで失敗します。
PCH が機能しないのはなぜですか? 不足している設定はありますか?私は以前にそれらを使ったことは一度もありませんでした (それらは常に機能するため)。そのため、まったく新しいプロジェクトであっても、何が原因で機能しないのかわかりません。
objective-c - XCode で pch を 2 回プリコンパイルしています。二度目は間違った言語で
XCode に Objective C プロジェクトがあります。ビルド時に、XCode はプレフィックス PCH ファイルを 2 回プリコンパイルします。初めて、引数を使用し、-x objective-c-header正常に動作します。2 回目は を使用し-x c-header、(Objective C コードを含むファイルが原因で) 失敗します。
同じように設定された別のプロジェクトがありますが、うまくビルドできます。(PCH は、Objective C で 1 回だけプリコンパイルされます。) 2 つのプロジェクトのビルド設定を並べて比較しましたが、関連する違いはありません。ターゲットのビルド設定を並べて比較しましたが、関連する違いはありません。
すべてのターゲットを消去して再構築しようとしましたが、うまくいきませんでした。XCodeを再起動しようとしましたが、うまくいきませんでした。のプロジェクト フォルダーを grepc-headerしましたが、ビルド ログにしか表示されませんでした。
何が原因でしょうか?