我打印了__cplusplus宏的值,发现我的文件在Visual Studio Code中用C98执行。我使用的是CodeRunner扩展。如何将其更改为C17?
__cplusplus
6xfqseft1#
转到扩展名,然后在搜索栏中键入ms-vscode.cpptools。点击C/C++扩展,在Uninstall的右边,应该有一个齿轮图标。点击它。此时应打开一个“配置文件”菜单。选择Extension Settings。现在点击搜索栏(有时它会让你点击两次,然后你就可以输入而不替换扩展名过滤器),然后输入cppStandard。从这里,您应该看到两个选项,一个用于Cpp标准,一个用于C标准。把Cpp标准版改成你想要的版本。我一般用c++17。
ms-vscode.cpptools
C/C++
Uninstall
Extension Settings
cppStandard
的数据
u5rb5r592#
另外,请确保调试器使用相同的版本。在task.json中,--std之后的行定义了版本。
--std
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: g++.exe build active file", "command": "C:\\msys64\\mingw64\\bin\\g++.exe", "args": [ "--std", "c++20", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "Task generated by Debugger." } ], "version": "2.0.0" }
字符串
cetgtptt3#
如果您使用的the cpptools extension不支持CMake,请使用C_Cpp.default.cppStandard设置或c_cpp_properties.json中特定配置的相应属性。请注意,这仅适用于智能感知,不会影响实际构建所使用的语言标准。如果您使用的是the CMake Tools extension("configurationProvider": "ms-vscode.cmake-tools")的CMake支持,请以最适合您项目的方式调整CMake配置(例如target_compile_features,CMAKE_CXX_STANDARD)。另外,如果你使用构建任务来进行编译(对于没有CMake Tools设置的cpptools,IntelliSense和构建配置是分开的),请确保添加相应的编译标志以使用该C++标准(另请参阅this post of mine)。如果你使用的是the clangd extension,它会从一个编译命令数据库(compile_commands.json文件)中删除,你可以使用CMAKE_EXPORT_COMPILE_COMMANDS从CMake中自动获取(另请参阅this post of mine)。如果你正在使用VS Code的Code Runner扩展(我不推荐这样做),请参阅How can I change the C++ standard used by the Code Runner extension for VS Code?(编辑workspace. vscode/settings.json的code-runner.executorMap设置)。
C_Cpp.default.cppStandard
c_cpp_properties.json
"configurationProvider": "ms-vscode.cmake-tools"
target_compile_features
CMAKE_CXX_STANDARD
compile_commands.json
CMAKE_EXPORT_COMPILE_COMMANDS
code-runner.executorMap
3条答案
按热度按时间6xfqseft1#
转到扩展名,然后在搜索栏中键入
ms-vscode.cpptools
。点击
C/C++
扩展,在Uninstall
的右边,应该有一个齿轮图标。点击它。此时应打开一个“配置文件”菜单。选择
Extension Settings
。现在点击搜索栏(有时它会让你点击两次,然后你就可以输入而不替换扩展名过滤器),然后输入
cppStandard
。从这里,您应该看到两个选项,一个用于Cpp标准,一个用于C标准。
把Cpp标准版改成你想要的版本。我一般用c++17。
的数据
u5rb5r592#
另外,请确保调试器使用相同的版本。在task.json中,
--std
之后的行定义了版本。字符串
cetgtptt3#
如果您使用的the cpptools extension不支持CMake,请使用
C_Cpp.default.cppStandard
设置或c_cpp_properties.json
中特定配置的相应属性。请注意,这仅适用于智能感知,不会影响实际构建所使用的语言标准。如果您使用的是the CMake Tools extension(
"configurationProvider": "ms-vscode.cmake-tools"
)的CMake支持,请以最适合您项目的方式调整CMake配置(例如target_compile_features
,CMAKE_CXX_STANDARD
)。另外,如果你使用构建任务来进行编译(对于没有CMake Tools设置的cpptools,IntelliSense和构建配置是分开的),请确保添加相应的编译标志以使用该C++标准(另请参阅this post of mine)。
如果你使用的是the clangd extension,它会从一个编译命令数据库(
compile_commands.json
文件)中删除,你可以使用CMAKE_EXPORT_COMPILE_COMMANDS
从CMake中自动获取(另请参阅this post of mine)。如果你正在使用VS Code的Code Runner扩展(我不推荐这样做),请参阅How can I change the C++ standard used by the Code Runner extension for VS Code?(编辑workspace. vscode/settings.json的
code-runner.executorMap
设置)。