症状
Visual Studio Code 起動(拡張機能アクティブ化)のタイミングで、C/C++ Extension がコンパイラ(cl.exe)を呼び出し、意図しない設定に変更してしまう。
1 2 |
[2021/7/11 9:03:25] C ソース ファイルで、コンパイラの引数と compilerPath のクエリに基づいて、cStandard が "c99" から "c17" に変更されました: "C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe" [2021/7/11 9:03:25] C++ ソース ファイルで、コンパイラの引数と compilerPath のクエリに基づいて、cppStandard が "c++03" から "c++14" に変更されました: "C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe" |
1 2 |
[2020/12/21 16:00:17] C ソース ファイルで、コンパイラの引数と compilerPath の"cl.exe" のプローブに基づいて、cStandard が "c99" から "c17" に変更されました [2020/12/21 16:00:17] C++ ソース ファイルで、コンパイラの引数とプローブ compilerPath に基づいて、cppStandard が "c++03" から "c++14" に変更されました: "cl.exe" |
C/C++ Extension Pack for Visual Studio Code 1.4.1 / Visual Studio Code 1.57.0
- C ソース ファイルで、コンパイラの引数と compilerPath のクエリに基づいて、cStandard が “c99” から “c17” に変更されました: “C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe”
- C++ ソース ファイルで、コンパイラの引数と compilerPath のクエリに基づいて、cppStandard が “c++03” から “c++14” に変更されました: “C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe”
C/C++ Extension Pack for Visual Studio Code 1.1.3 / Visual Studio Code 1.52.1
- C ソース ファイルでコンパイラの引数と compilerPath "cl.exe" のプローブに基づいて、cStandard が "c99" から "c17" に変更されました。
- C++ ソース ファイルでコンパイラの引数とプローブ "cl.exe" に基づいて、cppStandard が "c++03" から "c++14" に変更されました。
原因
C/C++ Extension がコマンドライン・コンパイラ(cl.exe)をみつけて、設定を上書きしている。
対策
コンパイラのパス指定 "compilerPath" を無効(空文字列)にする。
.vscode/c_cpp_properties.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
{ "env": { "DefaultIncludePath": [ // 中略 ] }, "configurations": [ { "name": "Win32", // 中略 "compilerPath": "", "cStandard": "c99", "cppStandard": "c++03" } ], // 中略 } |