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
}
相关推荐
Java猿_12 分钟前
开发 Java 项目,选哪个 IDE?Eclipse、MyEclipse 与 IntelliJ IDEA 深度对比
java·ide·eclipse
Eason_Lou11 小时前
webstorm开发vue项目快捷跳转到vue文件
ide·vue.js·webstorm
猫头虎19 小时前
Claude Code 永动机:ralph-loop 无限循环迭代插件详解(安装 / 原理 / 最佳实践 / 避坑)
ide·人工智能·langchain·开源·编辑器·aigc·编程技术
我命由我1234520 小时前
Android Studio - Android Studio 去除 import 的未使用的类
android·java·ide·学习·java-ee·android studio·学习方法
另寻沧海21 小时前
VS Code 内置变量与配置文件完全指南
c++·vscode
hi0_621 小时前
vibe coding 开发软件(一) 模型选择和agent简单使用
ide·个人开发·visual studio
惊讶的猫1 天前
vscode+conda
ide·vscode·conda
谧小夜1 天前
Visual Studio Code中实现Go语言自动导包教程
ide·vscode·golang
林_学1 天前
扔掉了本地 IDE,开发部署只要 3 分钟。
ide
白露与泡影1 天前
放弃 IntelliJ IDEA,转 VS Code 了。。
java·ide·intellij-idea