5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[VS2013]プリコンパイル済みヘッダを使うとIntelliSenseエラーが大量発生する問題を解決する方法まとめ

Last updated at Posted at 2015-06-02

プリコンパイル済みヘッダ使用時に発生することがあるIntelliSenseエラーを解決する

なんとか解決したので共有します。
解決法だけ知りたい人は記事下部へどうぞ。(※私のケースですので万能法かどうかは未検証です。)

プリコンパイル済みヘッダとは

VSでビルドするとき、あるファイル内容に変更があった場合、コンパイラはそのファイルに関連するコードすべてをチェックしてコンパイルします。
小規模開発ではそれほど問題になりませんが、関連するファイルが増えてくるとビルドのたびにずらーっと列挙されるファイル名を見ながら「そんなとこ変更してないんじゃぼけえ!」と思いながらイライラする羽目になります。
irairaCompile.png
(大阪人はせっかち)

多くのファイルと関連するけれども頻繁な変更の無い安定した(=Stable)コードを、あらかじめコンパイルしておくことでコンパイル時間を短縮するのが、「プリコンパイル済みヘッダ」です。
プリコンパイル済みヘッダの詳細と、利用方法は下記サイト等を見てください。
参考:ドキドキしないプリコンパイル済みヘッダー

プリコンパイル済みヘッダを使うとIntelliSenseがコード解析に失敗して大量にエラーを出す

※人によるようです

プリコンパイル済みヘッダ使うことでコンパイル時間が短縮されるのは良いのですが、IntelliSenseがヘッダを正常に読めず解析に失敗することがあります。
似た症例:#include "stdafx.h"がエラーになる

error.png
(勘弁しちくり~)

IntelliSenseによるコード解析やエラー発見機能は便利なので使いたい。でもプリコンパイル済みヘッダも使いたい。というわけで本題です。

解決法

私の場合は下記の手順で解決しました。
リビルドだけで解決した人もいるようです。

  • プリコンパイル済みヘッダとそれを作成するcppファイル(例:stdafx.hとstdafx.cpp)をプロジェクト直下に移動する。
    • vcxprojファイルと同階層に移動します
    • 移動に伴って相対パスが変わるため必要に応じてstdafx.hを編集します
  • sdfとipchを作り直す
    • 一旦VisualStudioを閉じる
    • sdfファイルとipchフォルダを削除
    • VisualStudioを再起動する
  • リビルド
    • メニューバーのビルド(B)→リビルド(R)

詳しい検証をしていませんが、私の場合はstdafx.hとstdafx.cppをプロジェクト直下に移動したのが効いたようです。

良かった良かった。

5
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?