官网:《Using Mingw in Visual Studio Code》,本文稍做了简化,喜英文版可直接移步。

工具准备

首先应该准备如下工具:

  1. 安装对应版本的Visual Studio Code。
  2. 安装VS Code上的C++扩展:C++ extension for VS Code。
  3. 下载MinGW-w64,考虑到是外网资源,建议选择离线版本,在线安装比较慢,不太稳定。
MinGW-w64 - for 32 and 64 bit Windows

4.将MinGW的bin目录添加至环境变量,本文为 D:MinGWmingw64bin

环境变量

测试:输入控制台指令

gcc -v

测试结果

上述步骤,基本准备工作结束。

创建 workspace

1.创建工作目录,可以通过控制台指令逐步创建,也可以自己建好文件夹:

本文为测试,在桌面创建了如下文件夹 (C:UsershaiDesktopVSCodeWorkhelloworld):

工作目录

2.输入下述控制台指令,打开到指定文件夹,并在指定文件夹内打开VS Code:

cd C:UsershaiDesktopVSCodeWorkhelloworld
code .

执行结果
执行 "code ." 指令后,打开的vs code界面

3.执行快捷键 Ctrl+Shift+P 或者 在View菜单下,打开Command Palette...菜单,输入并选择 C/C++: Edit Configurations (JSON):

json 配置脚本
打开后的配置文件

此时,会在工作路径下生成一个【.vscode】文件夹,并且文件夹内包含一个名为c_cpp_properties.json的脚本文件,如上图。此时,需要就上图中某些选项进行修改:

  • 将"compilerPath"设置为MinGW相应目录,本文为:D:/MinGW/mingw64/bin/g++.exe
  • "intelliSenseMode" 设置为 "gcc-x64"
  • "includePath" ,关于该项,很多教程中给出了相应的设置方式,但是这个视具体情况而定,本文暂时不需要。
{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"windowsSdkVersion": "10.0.17763.0","compilerPath": "D:/MinGW/mingw64/bin/g++.exe","cStandard": "c11","cppStandard": "c++17","intelliSenseMode": "gcc-x64"}],"version": 4
}

创建 Build Task

这个相对简单,在与上述配置文件同目录下,可以自行创建一个名为tasks.json的文件,然后将下述代码拷入其中即可:

{"version": "2.0.0","tasks": [{"label": "build hello world","type": "shell","command": "g++","args": ["-g","-o","helloworld","helloworld.cpp"],"group": {"kind": "build","isDefault": true}}]
}

其他参数相对好理解,也不需要太过计较,下述几个参数可以注意一下:

  • "label" 表示在VS Code Command Palette中显示的名字,可根据需要随意设定;
  • "group"对象下的"isDefault"取true时,表示可通过快捷键Ctrl+Shift+B快速运行该task;
  • 注意修改"args"中的参数,以匹配项目,其中第三项为可执行文件名称(helloworld.exe),第四项为源代码文件(helloworld.cpp)。

添加源代码文件

在工程目录下,本文为C:UsershaiDesktopVSCodeWorkhelloworld

添加名为helloworld.cpp文件,此名称与tasks.json中保持一致,具体代码如下:

#include <iostream>using namespace std;int main(int argc, char** argv)
{cout << "Hello World!" << endl;
}

编译并生成exe

定位到tasks.json文件,使用快捷键Ctrl+Shift+B执行该文件,可创建成功。

此时在cpp文件同目录下,会生成名为 helloworld.exe 的可执行文件,与配置文件设置的文件名相同。

创建成功后如上图所示

调试设置

定位到 helloworld.cpp 文件,按快捷键 F5, 选择 C++(GDB/LLDB), 然后选择 g++.exe build and debug active file

配置调试相关设置
配置调试相关设置

等待结束,会在【.vscode】文件夹下,自动生成一个名为"launch.json"的配置文件:

launch.json
{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"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": "D:MinGWmingw64bingdb.exe","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "g++.exe build active file"}]
}

注意,本文的配置方式与官方在顺序上稍有区别,本文将"launch.json"放在最后,是因为在按快捷键Ctrl+Shift+B创建完成项目后,再创建的"launch.json"文件中,系统自动填充了 "miDebuggerPath" 和 "program" 等对象,不需要自行设定,保持默认即可。

stopAtEntry是断点相关设置,一般设置为true。

运行程序

运行程序方式有很多,简单给出两种方式:

1.VS Code自带执行:在Debug菜单下选择 Start Without Debugging 或者快捷键 Ctrl+F5,可以简单预览结果。

设置断点时,可以选择 Start Debugging 或者快捷键 F5,可以进行简单的断点调试。

2.扩展工具:安装Code Runner扩展工具,完成后,直接在cpp中鼠标右键选择Run Code即可运行。

扩展安装
运行结果

扩展和使用

上文中的初次配置可能稍微麻烦点,但是后续使用就简单的多了。

例如现在想另起一个工程目录,新建一个测试用例,那么只需要以下4步:

  1. 将【.vscode】文件夹整体拷入新的工程文件夹内 (包含c_cpp_properties.json, launch.json,tasks.json三个配置文件);
  2. 控制台打开到工程文件夹目录,并通过"code ."指令打开VS Code;
  3. 修改tasks.json中"tasks"对象下的 "label" 和 "args"参数;
  4. 执行。

其实tasks.json中的"label"对象如果不是必须的话,可以命名为一个通用的名字,如“build My Task”等,就可以略去每次都修改该参数了。

其他参数个人感觉也可以通过vs code中的 预定义变量 进行优化,通过系统自动获取名称或路径,以达到进一步简化扩展的目的,仅是一个想法,有兴趣的可尝试。

设置默认终端

因为测试程序也不太复杂,就选择了VS Code默认终端,但若习惯像visual studio中弹出终端,可以将 launch.json 中的 "externalConsole" 设置为 true,就可以实现了。

稍微调整了下代码,按 Ctrl+F5 执行结果如下图:

以上。

评论区各位前辈给出了许多好的解决方案,学到了很多,也扩展了个人思路,有些也是我一直感兴趣的工具,陆续会尝试使用,学无止境,感谢大家!

mingw w64 v8.0.0_使用Visual Studio Code和MinGW编译运行C++代码相关推荐

  1. Visual Studio Code(VSCode) 编辑/编译/调试 C++ 代码

    前言 最近想要切换编辑工具,之前工作中使用过 Source Insight,Eclipse,CLion 来写 C++ 代码.目前来说 Source Insight 已经非常古老,只有编写代码还说得过去 ...

  2. 使用Visual Studio Code 第一次开发C# 运行Hello World!

    使用Visual Studio Code 第一次开发C# 运行Hello World! 1.安装.NET https://dotnet.microsoft.com/download/dotnet/5. ...

  3. 整理:使用 Visual Studio Code (vscode) 编写、运行、 调试 Java 应用程序

    作为一个喜欢折腾的人,最近抽空折腾一下VScode怎么写java程序.不断更新中.. 附一个原来写的C++的:这两个链接,第二个稍微简单一些 1)Visual Studio Code配置C.C++环境 ...

  4. mingw w64 v8.0.0_MinGW+OpenGL

    MinGW下面的OpenGL是没有Windows的Window支持的,也就是说,无法处理鼠标.键盘等事件的,如果你使用VS,那么还有可能使用MFC,但是现在使用的工具是MinGW,它没有这样的框架,所 ...

  5. 安装 Windows 自动化 API 3.0 时,visual Studio 2010 更快地运行

    如果未安装 Windows 自动化 API 3.0,使用 Windows 自动化 api 的应用程序可以显著减少 Microsoft Visual Studio 智能感知性能. 例如,Windows ...

  6. mingw w64 v8.0.0_R 4.0发布,配套编译工具Rtools 40发布

    2013年,R3.0发布. 2020年,R4.0发布. 这次更新较大.具体更新内容可以看R 4.0.0 is released. 配套编译工具Rtools 40也发布了.下载地址:https://cr ...

  7. Visual Studio Code怎么停止正在运行的Python脚本?

    有时候,写了无限循环的脚本,又或者脚本还没有运行完毕,却想要终止它. 比如,这个无限循环的命令: import datetime now = datetime.datetime.now() h = n ...

  8. 使用visual studio code将TypeScript编译为Javascript

    准备环境 安装VS code 下载地址 https://code.visualstudio.com/ 选择OS对应的VS Code下载,下载完成后安装并启动 安装typescript 需要提前安装no ...

  9. Visual Studio Code搭建C/C++语言开发环境

    目录 1.下载Visual Studio Code及MinGW 1.1下载Visual Studio Code 1.2 下载安装MinGW-w64 2.添加VSCode的C语言开发插件 3.配置C语言 ...

最新文章

  1. 数据结构与算法之KMP算法02
  2. 2018android wear手表,谷歌正开发三款智能手表 Wear OS系统逐步脱离Android范畴
  3. arm-none-linux-gnueabi,arm-none-eabi 与arm-eabi 区别 及 arm-none-linux-gnueabi安装
  4. 在as3中只有事件(或该事件的子级)的发送者才能侦听事件
  5. php.ini 只读,disabled by the php.ini setting phar.readonly
  6. 两个运放制作加法器_集成电路的分类及其制作工艺
  7. Java设计模式学习总结(12)——结构型模式之外观模式
  8. python小测验3_python基础小测试
  9. ~~朴素dijkstra算法
  10. 第四次作业3 四则运算试题生成
  11. Red5边源服务器集群部署
  12. jiangdongsheng
  13. TensorFlow中数据的feed与fetch
  14. 语义分割—遥感影像数据标签制作(ARCGIS)
  15. java jdom 类_JDOM 介绍及使用指南
  16. 我们该如何选择适合自己的编程语言呢?
  17. 什么是锁?看完你就明白了
  18. 微生物组-扩增子16S分析和可视化(线上/线下,本周开课,2021.7)
  19. BK7256,上海博通Wi-Fi6SOC芯片,高度集成-支持100w像素,详细资料
  20. 高仿小米商城项目,我爱了!

热门文章

  1. ASP截取字符 截取字符之间的字符
  2. Android中asset文件夹和raw文件夹区别(转载)
  3. 线上squid防火墙配置
  4. (运维)VMware-vCenter-Server-update Management
  5. SOC/LM在台湾的2011年发展趋势研判
  6. 网站开发技巧参考大全
  7. Java集合中HashMap日常问题及解决办法
  8. 【ActiveMQ】消息生产者自动注入报错:Could not autowire. No beans of 'JmsMessagingTemplate' type found...
  9. bootstrap30-辅助类展示不同的背景颜色
  10. 如何为云部署安全开源代码?