百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

Windows下VSCode配置C++环境(vscode配置c++11)

liuian 2025-03-19 14:16 10 浏览

介绍

本文介绍了如何在 Windows 10 下使用 VSCode 配置 C/C++ 环境,编译器采用 MinGW-w64(GCC 在Windows 下的支持)

主要参考了微软 VSCode 官方文档配置 Mingw-w64文档:Mingw-w64 on Windows,含有大量的翻译内容

配置编译器

MinGW-w64 http://mingw-w64.org/doku.php

Mingw-w64 是原始 mingw.org 项目的改进,旨在支持 Windows 系统上的 GCC 编译器。它在

2007 年进行了分叉,以提供对 64 位和新 API 的支持。从那以后,它得到了广泛的使用和分配。

注意 MinGW-w64 与 MinGW 是有区别的,不要选错

1. 下载

托管在此网站:
https://sourceforge.net/projects/mingw-w64/files/

可以直接选择在线安装器:MinGW-W64 Online Installer

MinGW-W64-install.exe

也可以选择相应版本安装,这里我选择的是 x86_64-posix-seh

2. 安装

方法1. 使用安装包


选项说明:

名称

可选项

说明

选择建

Version



根据需

求,无

需求则

最大

Architecture

x86_64,i686

64 位系统选择 x86_64,32 位系统

选择 i686

x86_64

Threads

线

posix,win32

posix,跨平台好。win32 性能好

posix

Exception

x86_64:

sjlj,seh。

i686:sjlj,

dwarf。

sjlj 同时支持 32 位和 64 位,稳定

性好。seh 和 dwarf 只分别支持 64

位、32位,但性能好

seh

Build

revision




参考:
https://wiki.qt.io/MinGW-64-bit

方法2. 压缩包(推荐)

下载相应的安装包,具体版本选择参考上表,选择合适位置解压至路径中没有空格的文件夹(换句话说,不能是 C:/Program Files/ 下的默认位置,可以是 C:\mingw-w64 )

3. 添加环境变量

将 mingw64 下的 bin 文件夹添加至 path

4. 检查

执行命令

g++ --version
gdb  --version

配置 IDE

VSCode

1. 安装 MinGW-w64

2. 安装 C/C++ 插件

3. 配置

这里我们需要在 .vscode 文件夹下共创建如下3个文件:

  • tasks.json (生成任务。告诉 VSCode 如何生成(编译)程序,该任务将调用 g++ 编译器

以基于源代码创建可执行文件)

  • launch.json (调试器设置)
  • c_cpp_properties.json (编译器路径和 IntelliSense 设置)

具体操作说明:

1. 创建 C++ 示例代码文件 Hello World,并保存,确保存在于文件夹中,而非临时文件

示例代码:

2. 配置 tasks.json ,用于编译

#include 
#include 
#include 

using namespace std;

int main()

{
       vector msg {"Hello", "C++", "World", "from", "VS Code", "and the 	C++ extension!"};

 			for (const string& word : msg)
 			{	
   						cout << word << " ";
 				}
 				cout << endl;
}


1. 配置 tasks.json

菜单 > 终端 > 配置默认生成任务

下拉列表中,列出了 C++ 编译器的各种预定义构建任务。选择 C/C++: g++.exe build

active file。若是 C,请选择 C/C++: gcc.exe build active file,C 无法使用 g++.exe

Note: 是 C 还是 C++ 是根据文件后缀名来判断的,而非根据右下角选择的语言

完成后会在 .vscode 文件夹下创建 task.json 文件并打开

部分变量说明:

  • command 设置指定要运行的程序;在这种情况下是g ++。
  • args 数组指定将传递给 g++的 命令行参数。必须按照编译器期望的顺序指定这

些参数。此任务告诉 g++ 获取活动文件( ${file} ),对其进行编译,并在当前

目录( ${fileDirname} )中创建一个与活动文件同名但以 .exe 为扩展名

${fileBasenameNoExtension}.exe )的可执行文件,如 helloworld.exe

可使用 "${workspaceFolder}\\*.cpp" 来替换 ${file} ,这将生成当前文件夹

中的所有 .cpp 文件

  • label 是在任务列表中显示的值,可以随意命名
  • group"isDefault": true 指定当按 Ctrl + Shift + B 时将运行此任务。此属

性仅出于方便起见;如果设置为 false,仍然可以使用“ 任务:运行构建任务”从“终

端”菜单中运行

  • group 中的 "isDefault": true ,指定当按下 Ctrl + Shift + B 时将运行此任

务。此属性仅出于方便起见;如果将其设置为 false,仍可以使用“ 运行生成任务”

从“终端”菜单中运行

task.json变量参考 https://code.visualstudio.com/docs/editor/variables-reference

2. 运行生成任务,编译

回到 helloworld.cpp ,按 Ctrl + Shift + B 或从“ 终端”菜单中选择“ 运行生成任务”

成功如图所示

且当前文件夹下会多出一个 helloworld.exe 文件,可以使用”+“按钮新建一个终端,

用来执行它,输入 .\helloworld.exe

3. 配置 launch.json ,用于调试

1. 配置 launch.json

按 F5 或 菜单 > 调试 > 添加配置 > 选择“ C ++(GDB / LLDB)”

将看到各种预定义调试配置的下拉列表,选择 g++.exe build and debug active file

VSCode 将会创建 launch.json 文件并打开

部分变量说明:

  • program 设置指定要调试的程序
  • 默认情况下,C++ 扩展不会在您的源代码中添加任何断点,并且 stopAtEntry 值设置

false 。将 stopAtEntry 值更改为 true 会导致调试器开始调试时在 main 方法

上停止

记得保存修改

2. 调试

回到 helloworld.cpp ,按F5或从主菜单中选择“ 调试”>“开始调试”

  • Step over (单步跳过)

前进到该程序中的下一条语句(跳过为初始化循环而执行的所有内部代码)

  • Step Into (单步调试)

逐步浏览 C++ 标准库中的源代码,若要返回自己的代码,可以按 Step over (单

步跳过)或者直接切换选项卡

具体调试过程省略,有兴趣的朋友可以在底部的参考链接参考官方文档中的调试

设置 WATCH :

可以用来跟踪变量的值

将断点设置为如图所示位置,并在 WATCH 窗口中点击“+”,在文本框中输入“word”,这

是循环中的变量名,当逐步执行循环时,可发现 WATCH 窗口中的“word”的值在变化

可在调试时,将鼠标悬浮于变量中,快速查看任何变量的值

4. 配置 c_cpp_properties.json ,进一步配置 C/C++ 扩展。非必要步骤

1. 按快捷键 Ctrl+Shift+P 打开命令面板,输入 C/C++,选择“Edit Configurations(UI)”

将生成配置文件 c_cpp_properties.json 并打开

2. 配置以下两个选项

  • 编译器路径 compilerPath

应该会自动填充,我这里是

D:\\Develop\\compilers\\mingw64\\bin\\gcc.exe

compilerPath 搜索顺序是:

  • 首先检查 Microsoft Visual C ++ 编译器
  • 然后在 Windows Subsystem for Linux(WSL)上寻找 g++
  • 然后是用于 Mingw-w64 的 g++

因此,如果安装了 Visual Studio 或 WSL,则可能需要更改 compilerPath

  • IntelliSense 模式

选择 gcc-x64

配置文件参考

task.json

{
 "version": "2.0.0",
 "tasks": [
 {
   "type": "shell",
   "label": "g++.exe build active file",
   "command": "C:\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-
rev0\\mingw32\\bin\\g++.exe",
   "args": ["-g", "${file}", "-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"],
   "options": {
    "cwd": "C:\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\bin"
  },
   "problemMatcher": ["$gcc"],
   "group": {
    "kind": "build",
    "isDefault": true
  }
 }
]
}

launch.json

{
   "version": "0.2.0",
   "configurations": [
   {
         "name": "g++.exe build and debug active file",
         "type": "cppdbg",
         "request": "launch",
         "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
         "args": [],
         "stopAtEntry": false,
         "cwd": "${workspaceFolder}",
         "environment": [],
         "externalConsole": false,
         "MIMode": "gdb",
         "miDebuggerPath": "C:\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\bin\\gdb.exe",
         "setupCommands": [
             {
                   "description": "Enable pretty-printing for gdb",
                   "text": "-enable-pretty-printing",
                   "ignoreFailures": true
               }
             ],
             "preLaunchTask": "g++.exe build active file"
              }
				]
}


c_cpp_properties.json

{
         "configurations": [
         {
             "name": "Win32",
             "includePath": ["${workspaceFolder}/**"],
             "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
             "compilerPath": "C:\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\bin\\gcc.exe",
             "cStandard": "c11",
             "cppStandard": "c++17",
             "intelliSenseMode": "clang-x86"
         }
        ],
         "version": 4
}

均位于 .vscode 文件夹下

不想看此文的小白的可以直接创建 .vscode 文件夹,在文件夹下创建这3个文件哦!

参考

VSCode 官方文档:
https://code.visualstudio.com/docs/cpp/config-mingw

相关推荐

面试问了解Linux内存管理吗?10张图给你安排的明明白白!

来源:https://www.cnblogs.com/NanoDragon/p/12736887.html今天来带大家研究一下Linux内存管理。对于精通CURD的业务同学,内存管理好像离我们很远...

Linux Kernel 6.12震撼发布:实时性能飙升,开启全新计算时代!

概述LinusTorvalds在邮件列表中宣布推出LinuxKernel6.12,该版本带来了多项重要的更新和功能增强。更新亮点PREEMPT_RT支持主要内容:LinuxKernel...

linux Grub2功能、常见配置及使用方式

Grub2(GrandUnifiedBootloaderversion2)是一款功能强大的引导加载程序,提供了以下功能和常见配置:多操作系统支持:Grub2可以加载和引导多个操作系统,包括不同...

Linux内核必备知识点-platform总线详解

platform总线是学习linux驱动必须要掌握的一个知识点。本文参考已发布:Linux3.14内核一、概念嵌入式系统中有很多的物理总线:I2c、SPI、USB、uart、PCIE、APB、AHB...

linux kernel内核的头文件获取、安装等方法

交叉编译时经常会用到这些头文件。下载合适版本的linux地址:https://mirrors.aliyun.com/linux-kernel/https://mirrors.edge.kernel.o...

600个常用 Linux 命令,收藏备用!

本文为Linux命令大全,从A到Z都有总结,建议大家收藏以便查用,或者查漏补缺!A命令描述access用于检查调用程序是否可以访问指定的文件,用于检查文件是否存在accton用于打开或关闭记帐进程或...

Linux 中 `/proc/cpuinfo`文件中最常见的标志

/proc/cpuinfo是一个虚拟文件系统,在Linux系统中提供有关CPU(中央处理器)的信息。通过读取该文件,您可以获取有关处理器的详细信息,如型号、频率、核心数、缓存大小等。本文将介绍...

600个Linux命令大全,从A到Z,2023年收藏大吉!

本文为Linux命令大全(有PDF),从A到Z都有总结,建议大家收藏以便查用,或者查漏补缺!A命令描述access用于检查调用程序是否可以访问指定的文件,用于检查文件是否存在accton用于打开或关闭...

Linux下如何查看硬件信息?

我们在Linux下进行开发时,有时也需要知道当前的硬件信息,比如:CPU几核?使用情况?内存大小及使用情况?USB设备是否被识别?等等类似此类问题。下面良许介绍一些常用的硬件查看命令。lshwls...

从PXE到GRUB到VHD文件启动

今天玩点花活儿,之前的文章再探从VHD文件中启动Windows及Grub双启动VHD文件+TinyCoreLinux中研了一下GRUB和VHD文件的关联应用,那么结合PXE又会是怎么样的呢?...

bootra1n教学:Windows用户用U盘Linux实现checkra1n越狱方法

checkra1n越狱工具在前几天推出Linux版本,相信对于Windows用户可能也看得很模糊,甚至要切割硬碟到安装Linux系统太过于繁杂,这篇要来教大家最简易最快速利用U盘Linux...

不了解NUMA,就看不懂Linux内核

哈喽,我是子牙,一个很卷的硬核男人深入研究计算机底层、Windows内核、Linux内核、Hotspot源码……聚焦做那些大家想学没地方学的课程。为了保证课程质量及教学效果,一年磨一剑,三年先后做了这...

Linus Torvalds接受微软Hyper-V升级 下一代Linux启动会更快

虽然Windows的粉丝和Linux的粉丝经常喜欢进行激烈的键盘大战,但操作系统的制造商们自己也了解彼此的优缺点。毫无疑问,微软也明白这一点,事实上,它甚至鼓励用户尝试Linux,尽管是使用...

deepin使用笔记——开机卡LOGO,无法正常关机的解决办法

第一次使用deepin操作系统,很容易遇到几种情况:1,开机卡LOGO,无法进入系统。2,开机可以进入系统,但是进入系统后桌面环境无法正常打开,一直卡着什么都不能用。3,开机后看似一切正常,但关机的时...

如何检查Linux系统硬件信息?从CPU到显卡,一网打尽!

你可能会问:“我为什么要关心硬件信息?”答案很简单:硬件是Linux系统的根基,了解它可以帮你解决很多实际问题。比如:性能调优:知道CPU核心数和内存大小,才能更好地调整程序运行参数。故障排查:系统卡...