如何更改 VS Code 中使用的 C++ 语言标准版本?

问题描述 投票:0回答:3

我打印了

__cplusplus
宏的值,发现我的文件是在 Visual Studio Code 中使用 C++98 执行的。我正在使用 CodeRunner 扩展。

如何将其更改为 C++17?

c++ visual-studio-code
3个回答
31
投票

转到扩展程序,然后在搜索栏中输入

ms-vscode.cpptools

单击

C/C++
扩展,在
Uninstall
右侧,应该有一个齿轮图标。点击它。

应打开一个下拉菜单。选择

Extension Settings

现在单击搜索栏(有时需要单击两次才能键入而不替换扩展过滤器)并键入

 cppStandard

从这里,您应该看到两个选项,一个用于 Cpp 标准,一个用于 C 标准。

将 Cpp Standard 更改为您想要的版本。我一般用c++17。


10
投票

此外,请确保您的调试器使用相同的版本。在task.json中,

--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"
}

2
投票

如果您在不支持 CMake 的情况下使用 cpptools 扩展,则使用

C_Cpp.default.cppStandard
设置,或
c_cpp_properties.json
中特定配置的相应属性。请注意,这仅适用于 IntelliSense,不会影响实际构建所使用的语言标准。

如果您使用来自 CMake 工具扩展 (

"configurationProvider": "ms-vscode.cmake-tools"
) 的 CMake 支持,请以最适合您的项目的方式调整您的 CMake 配置(例如
target_compile_features
CMAKE_CXX_STANDARD
) ).

此外,如果您使用构建任务来进行编译(对于没有 CMake 工具设置的 cpptools,IntelliSense 和构建配置是分开的),请确保添加相应的编译标志以使用该 C++ 标准(另请参阅 我的这篇文章)。不使用相同的语言标准进行构建和 IntelliSense 会导致混乱、错误和可能的错误。

如果您使用 clangd 扩展,则会从编译命令数据库(

compile_commands.json
文件)中删除,您可以使用
CMAKE_EXPORT_COMPILE_COMMANDS
从 CMake 自动获取该数据库(另请参阅 我的这篇文章) .

如果您使用 VS Code 的 Code Runner 扩展(我不推荐这样做),请参阅 如何更改 VS Code 的 Code Runner 扩展使用的 C++ 标准?(编辑工作区 .vscode/settings.json 的

code-runner.executorMap
设置)。

© www.soinside.com 2019 - 2024. All rights reserved.