2012-01-26 50 views
3

VS 2010で奇妙なIntellisenseエラーが発生しました。私は幸運にもインターネットを検索しました。これまで誰もこのエラーを受けていないようです。Visual Studio 2010 C++ Intellisenseエラー

IntelliSense: PCH warning: header stop needs to be at global scope. 
An intellisense PCH file was not generated. 

インデックス作成を中止するので、この他にも多くのエラーが発生します。これは私が最近追加したファイルに起こります。私は私のプロジェクト(278)に多くのファイルを持っており、これは最近の5-6に起こります。私はそれが好きではない、または制限があるかもしれない何かをしたかもしれません。

ドキュメントでもこのエラーが見つかりませんでしたので、その理由と解決方法を知りたいと思います。私がipchフォルダとsdfファイルを削除して新しいファイルを生成しようとしました。エラーは、ファイルの最後の行に与えられます。私のコードはテンプレートを多用しています。

編集:
私のipchフォルダはほとんど空であることがわかりました。これはおそらく、それらのファイルではなく、プリコンパイルされたヘッダーの生成全体が失敗することを意味します。それでも、インテリセンスは部分的には機能しますが、それらのファイルには機能しません。

+0

私はVS 2008を使用していますが、それは違いかもしれませんが、私の場合、IntellisenseデータベースはNCBファイルに格納されています。削除すると、通常、Intellisenseの問題が解決されます。 – Travesty3

+0

彼らはVS2010でシステム全体を変更しました。これはプリコンパイルされたヘッダに依存し、エントリを格納するためにmssqlデータベースを使用します。通常、ipchフォルダは100MB以上を占めています。 –

+1

は関連する可能性がありますhttp://social.msdn.microsoft.com/Forums/en-SG/vsdebug/thread/d41f9aea-4425-48fd-9e3b-4169ffc38e6f – Ha11owed

答えて

4

PCHは「あらかじめコンパイルされたヘッダー」を表しており、正しく設定されていることを確認する必要があります。

エラーメッセージは、プリコンパイルされたヘッダーの「停止」として構成されたヘッダーがネストされたファッションに含まれていると言っているようです(つまり、他のヘッダーが含まれています)。既定では、解決策は 'stop'ヘッダーとしてstdafx.hを使用し、stdafx.h.cppまたは.cファイルに含まれる最初のヘッダーになります。他のヘッダーにはstdafx.hを含めないでください。

Intellisenseの動作方法とトラブルシューティング方法に関する最良の情報はVisual C++ Team Blogです。

役立つかもしれないいくつかの記事

+0

私のプロジェクトはpchを使用しませんが、intellisenseはそれを使用します。それはそれのためのフォルダを作成しますが、完全に空です。 –

+0

私は再帰的なインクルードを持っているかもしれません。これは価値のある調査です。プラグマはコンパイルエラーを取得するために保護しますが、おそらくintellisenseはそれらを無視します。 –

+0

インテリセンスについてより多くのロギング情報を得る方法はありますか?解析しようとしたファイルのリストと同様です。 –

0

私の最初の気持ちは、それがファイルのエンコーディング問題になるかもしれないということですしかし、とにかくここに私はそれを考え出すアプローチになるだろう...

新しいソリューションを作成しますが、インテリセンスは機能しますか?そうでない場合は、VSの再インストールが順調である可能性があります。

インテリセンスが異なる溶液中で動作する場合は、2つの可能性があります:(?権限多分)あなたの溶液中の何かがおかしくあり、またはフォルダ階層の中で何かがおかしくあるが

私は、ソリューション全体のフォルダを削除したいとソース管理から最新のものを入手してください。

それでもそれが発生して本当に原因を見つけたいのであれば、プロジェクトからファイルの負荷を取り除いて、インテリセンスが機能しているかどうかを確認してください。またはb)エラーの原因となるファイルを見つけます。

場合は、新しいソリューションを作成し、ファイルとプロジェクトを追加します。それがうまくいく場合は、新しいソリューション/プロジェクトファイルを古いものと比較して、何が違うのかを確認してください。

b)の場合は、ファイルを追加して、問題のある行が見つかるまで、プルーニングを開始します。

+0

svnと同期している2台の異なるコンピュータに同じエラーが発生します。その他のプロジェクトはすべてうまくいっています。あなたのブルートフォースアプローチにはある程度の時間がかかります(408行以上のコードを含む278ファイル)。少なくとも私は、問題が最後のいくつかのファイルの後に起こったことを知っています。試してみる価値があるかもしれません。 –

+0

@Cem:更新はありますか? – demoncodemonkey

+0

私は今、別のオプションを模索中です。私はVisual AssistXをインストールしました。私はインテリセンスを無効にしました。現在はOKです。私はそれが100%動作するとすぐにそれを購入するかもしれません。 –

3

このエラーは、 ";"

#ifndef _MYCLASS_H 
class MyClass { 
... 
public: 
... 
} 

#endif <--- VS2010 report here the error PCH: warning... 

「;」を入力すると、閉じる "}"の後にエラーが消えます。私はこれが唯一の原因だと言っているわけではありません。上記の場所で。

関連する問題