質問

Xcodeを使用して「C ++ Standard Dynamic」ライブラリプロジェクトを作成し、LLVM 2.0を使用してコンパイルしました。 PCHファイルに行が含まれていることに気付きました #include <iostream> しかし、ファイル test.cp それも含まれています #include <iostream> 声明。

奇妙なことは、で声明を削除することによって test.cp, 、ビルドはエラーで失敗します Semantic Issue – Use of undeclared identifier 'std' その声明もPCHに含まれているという事実にもかかわらず。

なぜPCHが機能しないのですか?私が足りない設定はありますか?私は彼らと一緒に何もしたことがない(彼らはいつもうまくいくから)ので、真新しいプロジェクトであっても、何が機能しないのかわかりません。

役に立ちましたか?

解決

プリコンパイルされたヘッダーは、コンピレーションの高速化に使用されます。他の効果はありません。特に、必要なヘッダーを含める必要があります。

編集 - Xcodeでは、PCHファイルは実際には、たまたまプリコンパイルされているプレフィックスヘッダーです(デフォルトのプロジェクト構成を使用)。を確認します GCC_PRECOMPILE_PREFIX_HEADERGCC_PREFIX_HEADER ビルド設定。

他のヒント

派生データ(Window-Organizer、Projectsタブ、プロジェクトの選択)を削除して、XCodeにPCHのインデックスを再構築します。また、ユニットテストを使用する場合、UnittestSターゲットには個別のPCHがあります。これには、必要な輸入も含まれていることを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top