2018年版 C言語/C++ 入門者のための環境構築 (Windows編) - LYNCSブログ
C++で競プロをやるためのVSCodeの環境づくり - Qiita
上記のサイトを参考にしつつ構築していたら、VSCodeのC++環境でcannot open source file "wchar.h" (dependency of "iostream")
というエラーメッセージが出て困りました。ただ#include <iostream>
しているだけなのに。
ちなみにWindows7 32bitです。VSCodeのextentionsはC/C++ (Preview)版。
そのときのc_cpp_properties.jsonの中身↓
{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}", "C:/MinGW/include", "C:/MinGW/lib/gcc/mingw32/6.3.0/include/c++", "C:/MinGW/lib/gcc/mingw32/6.3.0/include/c++/mingw32" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "compileCommands": "", "windowsSdkVersion": "8.1", "cStandard": "c11", "cppStandard": "c++14", "intelliSenseMode": "msvc-x64", "compilerPath": "C:/MinGW/bin/g++.exe" } ], "version": 4 }
色々調べた結果、compilerPathでg++.exeを指定しておきながらincludePathはgccを設定しているのでは?ということを疑う。compilerPathをgccに設定し直すことに。
と思ったのですが、C:/MinGW/bin/
にgcc.exeが入っていない。なんで。
C++のコンパイラはhttp://www.mingw.org/からダウンロードしたのですが、なにか間違ったのだろうか。
よくわからなかったのでTDM-GCCでC++のコンパイラをインストールします。するとC:\MinGW\TDM-GCC-32.5.1\bin
にgcc.exeがインストールできました。
c_cpp_properties.jsonをgcc環境に書き換えます。
{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}", "C:\\MinGW\\TDM-GCC-32.5.1\\include" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "compileCommands": "", "windowsSdkVersion": "8.1", "cStandard": "c11", "cppStandard": "c++14", "intelliSenseMode": "msvc-x64", "compilerPath": "C:\\MinGW\\TDM-GCC-32.5.1\\bin\\gcc.exe" } ], "version": 4 }
するとエラーが消えました。
どうやらコンパイラがちゃんとインストールできていなかったか、g++とgccの設定を混同していたのが原因っぽいです。よくわからないですけど。