ubuntu20.04&vscode使用C++20(调整gcc版本&vscode设置)

Ubuntu 20.04 上使用 GCC 9.4.0 时,可以部分支持 C++20 标准,但完整功能需要更高版本的 GCC(如 10+)。以下是具体操作指南:


一. 升级 GCC 以获得完整 C++20 支持(推荐)

GCC 10+ 对 C++20 的支持更完善(如 ConceptsRanges 等)。在 Ubuntu 20.04 上可通过以下步骤升级:

步骤 1:添加 Ubuntu Toolchain PPA
bash 复制代码
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
步骤 2:安装 GCC 11(或更高版本)
bash 复制代码
sudo apt install gcc-11 g++-11
步骤 3:切换默认 GCC 版本(可选)
bash 复制代码
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100
# 验证版本
gcc --version
g++ --version
使用新版本编译(无需切换默认版本):
bash 复制代码
g++-11 -std=c++20 -o your_program your_source.cpp

二. 完整 C++20 示例(需 GCC 11+)

如果你升级到 GCC 11+,可尝试以下代码:

cpp 复制代码
#include <iostream>
#include <ranges>
#include <vector>

int main() {
    // C++20 范围视图(Ranges)
    std::vector<int> nums = {1, 2, 3, 4, 5};
    auto even = nums | std::views::filter([](int n) { return n % 2 == 0; });
    for (int n : even) {
        std::cout << n << " "; // 输出: 2 4
    }
    return 0;
}

编译命令:

bash 复制代码
g++-11 -std=c++20 -o ranges_example ranges_example.cpp

三.IDE部分处理

在前文我们已经可以通过命令行来使用C++20对单个cpp文件进行编译,但是很多时候我们希望使用vscode的自动化编译处理,比如F5直接进行调试,Ctrl+Shift+B编译,Ctrl + Alt +N编译并运行这样子,因此,需要在vscode的.vscode文件夹中增加以下更改

3.1 tasks.json

3.2 c_cpp_properties.json

json 复制代码
{
  "configurations": [
    {
      "name": "Linux",
      "compilerPath": "/usr/bin/g++-11",
      "cStandard": "c17",
      "cppStandard": "c++20",
      "intelliSenseMode": "gcc-x64",
      "includePath": [
        "/usr/include/c++/11",       // 关键路径:GCC 11 的头文件
        "/usr/include/x86_64-linux-gnu/c++/11",
        "${workspaceFolder}/**"
      ]
    }
  ],
  "version": 4
}
相关推荐
CBCU1 小时前
关于ubuntu环境下vscode进行debug的随笔
linux·vscode·ubuntu
扛麻袋的少年2 小时前
vscode 开发nuxt,点击标签跳转到 components.d.ts 解决方案
vscode·nuxt3
come112344 小时前
VS Code 项目中的 .vscode 目录详解
ide·vscode·编辑器
像素之间4 小时前
设置vscode使用eslint
ide·vscode·编辑器
阿幸软件杂货间7 小时前
VSCode1.101.1Win多语言语言编辑器便携版安装教程
vscode·编辑器
莫负好时光丶7 小时前
Smart Input Pro IDEA 插件推荐
java·ide·intellij-idea
鑫宇吖9 小时前
【工具使用-VScode】VScode如何设置空格和tab键显示
vscode·c
weixin_464078079 小时前
Pycharm中Jupyter Notebook 插件常用快捷键
ide·jupyter·pycharm
九转编程蛊10 小时前
破解版idea安装Jira插件
java·ide·intellij-idea
starstarzz12 小时前
解决idea无法正常加载lombok包
java·ide·spring·intellij-idea·springboot·web