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

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

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

介绍

本文介绍了如何在 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

相关推荐

GANs为何引爆机器学习?这篇基于TensorFlow的实例教程为你解惑!

「机器人圈导览」:生成对抗网络无疑是机器学习领域近三年来最火爆的研究领域,相关论文层出不求,各种领域的应用层出不穷。那么,GAN到底如何实践?本文编译自Medium,该文作者以一朵玫瑰花为例,详细阐...

高丽大学等机构联合发布StarGAN:可自定义表情和面部特征

原文来源:arXiv、GitHub作者:YunjeyChoi、MinjeChoi、MunyoungKim、Jung-WooHa、SungKim、JaegulChoo「雷克世界」编译:嗯~...

TensorFlow和PyTorch相继发布最新版,有何变化

原文来源:GitHub「机器人圈」编译:嗯~阿童木呀、多啦A亮Tensorflow主要特征和改进在Tensorflow库中添加封装评估量。所添加的评估量列表如下:1.深度神经网络分类器(DNNCl...

「2022 年」崔庆才 Python3 爬虫教程 - 深度学习识别滑动验证码缺口

上一节我们使用OpenCV识别了图形验证码躯壳欧。这时候就有朋友可能会说了,现在深度学习不是对图像识别很准吗?那深度学习可以用在识别滑动验证码缺口位置吗?当然也是可以的,本节我们就来了解下使用深度...

20K star!搞定 LLM 微调的开源利器

LLM(大语言模型)微调一直都是老大难问题,不仅因为微调需要大量的计算资源,而且微调的方法也很多,要去尝试每种方法的效果,需要安装大量的第三方库和依赖,甚至要接入一些框架,可能在还没开始微调就已经因为...

大模型DeepSeek本地部署后如何进行自定义调整?

1.理解模型架构a)查看深度求索官方文档或提供的源代码文件,了解模型的结构、输入输出格式以及支持的功能。模型是否为预训练权重?如果是,可以在预训练的基础上进行微调(Fine-tuning)。是否需要...

因配置不当,约5000个AI模型与数据集在公网暴露

除了可访问机器学习模型外,暴露的数据还可能包括训练数据集、超参数,甚至是用于构建模型的原始数据。前情回顾·人工智能安全动态向ChatGPT植入恶意“长期记忆”,持续窃取用户输入数据多模态大语言模型的致...

基于pytorch的深度学习人员重识别

基于pytorch的深度学习人员重识别Torchreid是一个库。基于pytorch的深度学习人员重识别。特点:支持多GPU训练支持图像的人员重识别与视频的人员重识别端到端的训练与评估简单的re...

DeepSeek本地部署:轻松训练你的AI模型

引言:为什么选择本地部署?在AI技术飞速发展的今天,越来越多的企业和个人希望将AI技术应用于实际场景中。然而,对于一些对数据隐私和计算资源有特殊需求的用户来说,云端部署可能并不是最佳选择。此时,本地部...

谷歌今天又开源了,这次是Sketch-RNN

前不久,谷歌公布了一项最新技术,可以教机器画画。今天,谷歌开源了代码。在我们研究其代码之前,首先先按要求设置Magenta环境。(https://github.com/tensorflow/magen...

Tensorflow 使用预训练模型训练的完整流程

前面已经介绍了深度学习框架Tensorflow的图像的标注和训练数据的准备工作,本文介绍一下使用预训练模型完成训练并导出训练的模型。1.选择预训练模型1.1下载预训练模型首先需要在Tensorf...

30天大模型调优学习计划(30分钟训练大模型)

30天大模型调优学习计划,结合Unsloth和Lora进行大模型微调,掌握大模型基础知识和调优方法,熟练应用。第1周:基础入门目标:了解大模型基础并熟悉Unsloth等工具的基本使用。Day1:大模...

python爬取喜马拉雅音频,json参数解析

一.抓包分析json,获取加密方式1.抓包获取音频界面f12打开抓包工具,播放一个(非vip)视频,点击“媒体”单击打开可以复制URL,发现就是我们要的音频。复制“CKwRIJEEXn-cABa0Tg...

五、JSONPath使用(Python)(json数据python)

1.安装方法pipinstalljsonpath2.jsonpath与Xpath下面表格是jsonpath语法与Xpath的完整概述和比较。Xpathjsonpath概述/$根节点.@当前节点...

Python网络爬虫的时候json=就是让你少写个json.dumps()

大家好,我是皮皮。一、前言前几天在Python白银交流群【空翼】问了一个Python网络爬虫的问题,提问截图如下:登录请求地址是这个:二、实现过程这里【甯同学】给了一个提示,如下所示:估计很多小伙伴和...