Gamut Geek

Make world more funny

Visual Studio 2017のCMakeでIntellisenseが効かなかった

背景

目的

結果

できました.

何故Intellisenseを実行できなかったか?

問題点を書く前に,少しだけVisual Studioの仕組みについて説明します.

Visual Studioでは,C++のヘッダをincludeする際に二種類の記法があります.

#include <hahaha.h>

#include "hahaha.h"

<> を使用した場合は,IDEに設定された検索対象の場所から該当ファイルを検索します.この際,Windowsであれば,多くの場合IDEはVisual Studioとなるでしょう.そしてこのとき,Visual Studioのプロジェクトのプロパティから設定できる,追加のインクルードディレクトリ がここで言う検索対象 のディレクトリとなります.

”“ を使用した場合には,呼び出し元ファイルを起点としてファイルを検索します.

私の環境における問題点は,自身が作成したローカルのファイルをインクルードする際に,<> を使用していたことでした.試しにこれを ”“ に変更して試したところ,無事Intellisenseが動作しました.

予想

おそらく,これは<> を使用したことにより無駄に検索範囲が広くなってしまったため,それぞれのファイルを見つけ出すまでに膨大な時間がかかってしまっていたのではないかと考えています.

今回のプログラムはグラフィクス用のプログラムで,画面表示のためにたくさんの外部ライブラリを使用していました.そして,それぞれのライブラリのincludeディレクトリをIDEが検索する対象範囲に追加していたため,時間がかかってしまったものと思われます.

リンク

この内容はQiitaにも投稿しました.