stackoverflowに似たような感じの質問がありました。
Visual Studio 2017 errors on standard headers
Visual Studio InstallerでWindows Universal CRT SDK
にチェックがあるか確認してみて下さい
VS2017でのVCフォルダは以下の場所(14.0の付かない方)で、
(Communityの部分はインストールしたエディションで変わる)
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC
math.hは以下の場所にあるようです。
10.0.15063.0はUCRTのバージョンによって変わる。
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\ucrt
どうしてもダメなら、メニューのツール
> 設定のインポートとエクスポート
でウィザードを開き、すべての設定をリセット
(ユーザーの環境設定はアンインストールでも消えなかったはず)と以下のツールを使ってクリーンインストールしてみて下さい。
VisualStudioUninstaller
追記
VisualStudioUninstallerではアンインストール等で残った残骸は削除出来ますが、VS2017自体は正規の手順でアンインストールする必要があるようです。
ツール
> 設定のインポートとエクスポート
でリセット出来るのはウィンドウのレイアウト位みたいで、設定を完全に削除するには、C:\Users\ユーザ名\AppData\Local\Microsoft\VisualStudio
内のファイルを削除しないとダメみたいです(要バックアップ)
追記(15.2から15.3に書き換えました)
Windows 10上のVS2017 15.3.0でワークロードにC++ によるデスクトップ開発
を選択した時に既定でインストールされる個別のコンポーネントの設定を載せておきます。
- UWP用 Windows 10 SDK (10.0.15063.0):C#、VB、JS
- UWP用 Windows 10 SDK (10.0.15036.0):C++
- Visual C++ ATL のサポート
- グラフィック ツール Windows 8.1 SDK
- デスクトップ C++ x86 および x64用 Windows SDK (10.0.15063.0)
- Direct X 用グラフィックス デバッガーおよび GPU プロファイラー
- スタティック分析ツール
- テキスト テンプレート変換
- C# および Visual Basic Roslyn コンパイラ
- CMake の Visual C++ ツール
- MSBuild
- VC++ 2017 v141 ツールセット (x86,x64)
- Visual C++ 2017 再分布可能パッケージの更新プログラム
- C++ のプロファイル ツール
- Just-In-Time デバッガー
- C# および Visual Basic
- Razor 言語サービス
- Visual Studio C++ コア機能
ヘッダーおよびライブラリ類は主にデスクトップ C++ x86 および x64 用 Windows 10 SDK (10.0.15063.0)
に含まれていて、C++ によるデスクトップ開発
ではなく、C++ によるゲーム開発
を選択した場合でもインストールされるようです。
別件ですがVS2017 15.3.0を
- Visual Studio Installerを使ってアンインストール
- Visual Studio Uninstallerで残りの残骸も削除
- アプリと機能からVisual Studio Installerをアンインストール
C:\Users\ユーザ名\AppData\Local\Microsoft\VisualStudio
をExplorerから手動で削除(RoamingのVisualStudioフォルダも)
- vs_Community.exeをダウンロードして再インストール
と言う手順で行いました。
こちらではこの設定でmath.h
も問題なく使えています。
C:\Program Files (x86)\Microsoft Visual Studio 14.0 に、VSというディレクトリがありません。
試したことはないですが、オプションでデスクトップ用の VC++ 2015.3 v140 ツールセット (x86、x64)
をチェックすればおそらくそちらにVC++ 2015相当のツールセットがインストールされるのでは?と思います。
windows skd ver8.1が見つかりませんでした
デフォルトでチェックが入るのは最も新しいWindows 10のSDKなので、オプションでWindows 8.1 SDK と UCRT SDK
をチェックしないとダメかも?
コメントの方で指摘がありましたが、[プロジェクト] > [プロパティ] > [VC++ ディレクトリ]で以下のマクロの値を中心にどうなっているかも確認してみて下さい。
$(VC_IncludePath)
$(WindowsSDK_IncludePath)
