[vscode] C/C++ コンパイラ・プローブ

症状

Visual Studio Code 起動(拡張機能アクティブ化)のタイミングで、C/C++ Extension がコンパイラ(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

    リンク