当前位置: 首页 > news >正文

windows配置C++编译环境和VScode C++配置(保姆级教程)

1.安装MinGW-w64

MinGW-w64是一个开源的编译器套件,适用于Windows平台,支持32位和64位应用程序的开发。它包含了GCC编译器、GDB调试器以及其他必要的工具,是C++开发者在Windows环境下进行开发的重要工具。
我找到了一个下载比较快的链接:https://gitcode.com/open-source-toolkit/1f790/overviewutm_source=highlight_word_gitcode&word=MinGW-w64&isLogin=1
解压后需要配置环境变量,以我的为例。

第一步

将bin文件夹的路径复制:E:\c++\mingw64\bin
在这里插入图片描述

第二步

*在开始菜单旁边的搜索框中输入环境变量,然后点击打开
在这里插入图片描述

  • 点击环境变量
    在这里插入图片描述

  • 双击系统变量中的Path
    在这里插入图片描述

  • 然后点击新建按钮,将刚才复制的路径添加进去,最后点击确定即可。
    在这里插入图片描述

  • 做完上述步骤后,可打开cmd进行验证。输入gcc -v 命令,若出现版本信息则配置成功。
    在这里插入图片描述
    到此,MinGW-w64就安装完毕了

2.安装VScode

  • 下载地址:https://code.visualstudio.com/Download
    这里大家可以参考文章:https://blog.csdn.net/MSDCP/article/details/127033151

  • 这里建议大家先汉化,安装插件重启即可。具体步骤如下图所示:
    在这里插入图片描述

3.配置文件

1.task.json
  • 首先我们在创建一个文件夹test,然后点击VSCode中的文件->打开文件夹,选择刚创建的文件夹。然后点击箭头所指的按钮,创建一个1.cpp文件。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 编辑如下代码
#include <iostream>
using namespace std;int main() 
{cout << "Hello, World!";return 0;
}

在这里插入图片描述

  • 点击终端->配置默认生成任务
    在这里插入图片描述
  • 在跳出来的界面中选择有g++的选项,然后会自动跳出一个task.json文件
    在这里插入图片描述
  • 然后用下述代码替换task.json中的内容
{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: g++.exe 生成活动文件","command": "E:\\c++\\mingw64\\bin\\g++.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "编译器: E:\\c++\\mingw64\\bin\\g++.exe"}]
}
  • 将下述中commanddetail替换成自己的实际目录,注意使用/ or\\
    在这里插入图片描述
2.launch.json
  • 接下来配置launch.json文件,该文件是针对程序运行的。点击Run(R)->添加配置->选择C/C++:(gdb)启动,将下边的代码复制到launch.json文件中
    在这里插入图片描述
{"configurations": [{"name": "(gdb) 启动","type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "E:/c++/mingw64/bin/gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "将反汇编风格设置为 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}],"preLaunchTask": "C/C++: g++.exe 生成活动文件"}]
}

在这里插入图片描述

  • 将其中miDebuggerPath替换成自己的实际目录,注意使用/ or \\,其中externalConsole 指定程序运行时的输入和输出的窗口将在界面下方的终端,将其false改为true将在黑框中输入和输出。
3.c_cpp_properties.json

接下来配置c_cpp_properties.json文件,该配置文件针对于C/C++的相关拓展的,首先按下Ctrl+Shift+P以打开全局搜索,输入C/C++并在搜索结果中选择C/C++: 编辑配置(UI)
在这里插入图片描述

点击该选项,我们会打开一个设置的图形界面,如下图所示。
在这里插入图片描述
然后会自动生成 c_cpp_properties.json配置文件,我生成的内容如下:
在这里插入图片描述
其中 “compilerPath”: 后的路径需修改成自己的
下边是我这个文件中的代码

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "E:\\c++\\mingw64\\bin\\gcc.exe","cStandard": "c17","cppStandard": "gnu++14","intelliSenseMode": "windows-gcc-x64"}],"version": 4
}
最后效果

在这里插入图片描述
注:我感觉这三个配置文件是针对当前文件夹的,加入你再创建一个文件夹可能需要重新操作上述步骤,或者把.vscode这个文件夹复制到你创建的文件夹中应该也可以。

4.安装扩展

  • C/C++ Extension Pack:一些常用的C/C++拓展
  • Code Runner:代码运行器

5.结尾

  • 最后,我们打开1cpp文件,点击运行->以非调试模式运行,若在终端出现Hello world的输出,说明配置是OK的
    在这里插入图片描述
    在这里插入图片描述

参考文章:

  • 1.VSCode安装配置使用教程(最新版超详细保姆级含插件)一文就够了:https://blog.csdn.net/MSDCP/article/details/127033151
  • 2.全网最详细保姆级VSCode配置C/C++教程(基于官方文档):https://blog.csdn.net/qq_50813669/article/details/124461328
  • 3.Vscode调试环境配置解决The preLaunchTask‘C/C++: gcc.exe build active file‘ 的方法:https://blog.csdn.net/qq_38604345/article/details/126898103
http://www.lryc.cn/news/452841.html

相关文章:

  • 【微信小程序前端开发】入门Day03 —— 页面导航、事件、生命周期、WXS 脚本及自定义组件
  • 【51单片机】点亮LED之经典流水灯
  • 深度学习数据增强的常用方法
  • 影院管理新篇章:小徐的Spring Boot应用
  • 【H2O2|全栈】关于CSS(9)CSS3扩充了哪些新鲜的东西?(二)
  • java中Files和File对象详情和区别比较
  • Unity3D PostLateUpdate为何突然占用大量时间详解
  • 如何快速熟悉项目
  • Spring Boot实现新闻个性化推荐
  • 优化后的版本
  • 【Linux系统编程】第二十七弹---文件描述符与重定向:fd奥秘、dup2应用与Shell重定向实战
  • 开放式耳机哪个品牌好?好用且高性价比的开放式蓝牙耳机推荐
  • 区间合并——模板题
  • Microsoft Edge 五个好用的插件
  • 解决 遇到JWT中claims中获取不到数据的问题
  • 会议平台后端优化方案
  • unixODBC编程(十)分片插入长数据
  • 【Java】—— 集合框架:Collection子接口:Set不同实现类的对比及使用(HashSet、LinkedHashSet、TreeSet)
  • android Activity生命周期
  • C#的面向对象
  • 【区别】三种命令取消已暂存的文件,处理暂存区和文件的跟踪状态
  • 如何在Spring Boot中有条件地运行CommandLineRunner Bean
  • 边缘自适应粒子滤波(Edge-Adaptive Particle Filter)的MATLAB函数示例,以及相应的讲解
  • 一块1T硬盘怎么有sdb1和sdb2
  • Python知识点:如何使用Flink与Python进行实时数据处理
  • Swagger配置且添加小锁(asp.net)(笔记)
  • lambda表达式底层实现:反编译LambdaMetafactory + 转储dump + 运行过程 + 反汇编 + 动态指令invokedynamic
  • Unity初识+面板介绍
  • 【CSS in Depth 2 精译_041】6.4 CSS 中的堆叠上下文与 z-index(上)
  • uniapp微信小程序巧用跳转封装鉴权路由