環境
Windows10 Pro x64
OSビルド: 10.0.17314
バージョン: 1803
発生した問題
WindowsでVisual Studioを使用して,普段どおりC++のプロジェクトを作成したところ,デフォルトで生成されたファイルのコンパイルが通らない問題が発生しました.
エラーログは以下の通りです
E1696 ソース ファイルを開けません "C:\HOGE\PROJECT\PROJECT\PROJECT.CPP" E2998 PCH 警告: 不明なエラーが発生しました。IntelliSense PCH ファイルは生成されませんでした。 C1083 ソース ファイルを開けません。'stdafx.cpp':No such file or directory
3つ目のエラーは,通常インクルードファイルのパスを間違えた時などに発生することが多いのですが,今回はそもそもVSプロジェクトに組み込まれているcppファイルにこのエラーが発生しました.
原因
1つ目のエラーでは,表示されるパスが全て大文字になっていました.
現在のWindowsではディレクトリ毎にファイル名の大文字/小文字を無視するか指定することができるようになっており,基本的には無視するのですが,無視しないようにしていると今回のエラーが発生するようです.
自分の場合,GitをWSL上から操作していた関係上大文字小文字を区別したほうが便利だったので,gitリポジトリをまとめたディレクトリは無視しないように設定していました.そのディレクトリを親として今回のVSプロジェクトを作成してしまったため,このエラーが発生しました.
解決策
プロジェクトファイル(.sln)のあるディレクトリに対して,fsutil.exe
を実行することで解決します
fsutil.exe file setCaseSensitiveInfo <path> disable
参考サイト
Windowsでディレクトリ単位での大文字・小文字を区別する設定がWindows 10 Insider Previewに追加されています