VSCode在windows下使用MinGW-w64的gcc/g++编写调试程序

2023-10-08 22:50

本文主要是介绍VSCode在windows下使用MinGW-w64的gcc/g++编写调试程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

VSCode在windows下使用MinGW-w64的gcc/g++编写调试程序


如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033

文章目录

  • VSCode在windows下使用MinGW-w64的gcc/g++编写调试程序
    • @[toc]
    • 前言
    • 1.安装vs code
    • 2.安装c++插件
    • 3.编写测试代码
    • 4.配置相关参数
      • 4.1 C/C++编辑配置
      • 4.2 tasks.json运行前任务配置
      • 4.3 lauch.json启动配置
    • 4.单步调试
    • 5.结果

环境:
OS : winows 7 64bit
MinGW-w64 Version : x86_64-8.1.0-release-win32-seh-rt_v6-rev0
VSCode : 1.37( Electron: 4.2.7 Chrome: 69.0.3497.128 Node.js: 10.11.0 V8: 6.9.427.31-electron.0)
VSCode C++插件:C/C++ for Visual Studio Code 0.25.0-insiders: August 8, 2019

相关文章:
MinGW-w64简介
MinGW-w64在windows下的离线安装

前言

为什么会使用VSCode在windows下调试C++程序呢?windows下不是有Visual Studio吗?
主要因为Visual Studio太重量级了,而且跨平台支持不够完善,因此才有了本文

1.安装vs code

略过

2.安装c++插件

vs code应用商店所有C/C++,其中Microsoft发布的就是,全名C/C++ for Visual Studio Code

源码:
https://github.com/microsoft/vscode-cpptools

3.编写测试代码

文件命名为hello.cpp

#include<stdio.h>int main()
{printf("Hello World");
}

4.配置相关参数

4.1 C/C++编辑配置

c_cpp_properties.json可以配置头文件、编译器、标准等

//c_cpp_properties.json
{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "D:/mingw64/bin/g++.exe","cStandard": "c11","cppStandard": "c++17","intelliSenseMode": "clang-x64"}],"version": 4
}

4.2 tasks.json运行前任务配置

配置任务可以自动编译生成.exe

//tasks.json
{// See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"type": "shell","label": "g++", //与launch.json的preLaunchTask选项一致"command": "D:/mingw64/bin/g++.exe",//指定g++"args": [//设置编译参数"-g","${workspaceFolder}/hello.cpp","-o","hello.exe"],"options": {"cwd": "D:/mingw64/bin"//指定编译环境位置},"problemMatcher": ["$gcc"]}]
}

4.3 lauch.json启动配置

通过lauch.json(调试 - 打开配置)来配置启动参数

//lauch.json
{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(gdb) Launch","type": "cppdbg","request": "launch","program": "${workspaceFolder}/hello.exe",//修改运行的exe名称"args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "D:/mingw64/bin/gdb.exe",//修改gdb路径"preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc"setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}]}]
}

4.单步调试

打断点,F5开始调试即可
在这里插入图片描述

5.结果

在这里插入图片描述


觉得文章对你有帮助,可以扫描二维码捐赠给博主,谢谢!
在这里插入图片描述
如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033


License

License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎


Reference:
1.http://www.mingw-w64.org
2.MinGW-w64简介
3.MinGW-w64在windows下的离线安装

这篇关于VSCode在windows下使用MinGW-w64的gcc/g++编写调试程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/168538

相关文章

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca