【笔记】【VSCode】Windows下VSCode编译调试c/c++

时间:2023-01-04 22:54:27

转载自http://m.2cto.com/kf/201606/516207.html

首先看效果

设置断点,变量监视,调用堆栈的查看
【笔记】【VSCode】Windows下VSCode编译调试c/c++

条件断点的使用:
【笔记】【VSCode】Windows下VSCode编译调试c/c++

下面是配置过程:

总体流程:

下载安装vscode 安装cpptools插件 安装编译、调试环境 修改vscode调试配置文件 完了

下载安装vscode
https://code.visualstudio.com/Download
【笔记】【VSCode】Windows下VSCode编译调试c/c++
点击下载自己喜欢的相应版本,绿色版解压即可食用

安装cpptools插件
打开vscode,按ctrl+e打开快速命令框,输入以下命令后等待<喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxibG9ja3F1b3RlPg0KCTxwPmV4dCBpbnN0YWxsIGNwcHRvb2xzPC9wPg0KPC9ibG9ja3F1b3RlPg0KPHA+dnNjb2Rl1Nq2zNTdtcTBqs34sunV0rrzu+HB0LP2suW8/sHQse2jrMjnzbyjujxiciAvPg0KPGltZyBhbHQ9"这里写图片描述" src="http://www.2cto.com/uploadfile/Collfiles/20160611/20160611095456776.png" title="\" />
点击箭头所指处的按钮安装插件,安装过程可能会有些慢耐心等待
安装完成后vscode会提示你重启vscode,此时重启即可

安装编译、调试环境

目前windows下调试仅支持 Cygwin 和 MinGW。
这里使用的是MinGW.
下面是MinGW的安装配置过程:
http://mingw.org/
进入官网点击右侧 Download Installer下载安装器
打开安装器点击install准备安装:
【笔记】【VSCode】Windows下VSCode编译调试c/c++

选择一个安装目录,默认为C:\MinGW这里选择的是A:\MinGW
点击Continue开始安装,安装过程需联网,若安装时提示error则需*安装
安装过程很快,结束后Continue按钮恢复为可用状态,点击完成安装。

【笔记】【VSCode】Windows下VSCode编译调试c/c++
打开MinGW安装管理器进行进一步配置

【笔记】【VSCode】Windows下VSCode编译调试c/c++

注意这里gdb必选,否则无法调试
【笔记】【VSCode】Windows下VSCode编译调试c/c++
选中几个需要的项右键Make for Installation进行标记,其中gcc和g++为c和c++编译器
选择完全部想要安装的项后点击左上角Installation菜单下的Apply Changes应用修改,过程需联网,中间出现error可先继续,若最后失败则需*更新,建议*

然后配置系统环境变量path,这一步为必须 
在 我的电脑 上右键 属性:
然后按照下面步骤做即可,注意最后新建的项要与之前MinGW安装位置相对应
【笔记】【VSCode】Windows下VSCode编译调试c/c++

修改vscode调试配置文件
再次打开vscode,注意配置系统环境变量path后重启一下vscode
注意vscode调试需要在打开的文件夹中进行

打开文件夹后,新建test.cpp进行输入代码测试:
【笔记】【VSCode】Windows下VSCode编译调试c/c++

如图示进入调试界面选择C++:
【笔记】【VSCode】Windows下VSCode编译调试c/c++
【笔记】【VSCode】Windows下VSCode编译调试c/c++

然后会在工作目录下的生成一个launch.json的启动配置文件:
【笔记】【VSCode】Windows下VSCode编译调试c/c++

使用下面代码替换该文件:

{ "version": "0.2.0", "configurations": [ { "name": "C++ Launch (GDB)", // 配置名称,将会在启动配置的下拉菜单中显示 "type": "cppdbg", // 配置类型,这里只能为cppdbg "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加) "launchOptionType": "Local", // 调试器启动类型,这里只能为Local "targetArchitecture": "x86", // 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64 "program": "${file}.exe", // 将要进行调试的程序的路径 "miDebuggerPath":"a:\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应 "args": ["blackkitty", "1221", "# #"], // 程序调试时传递给程序的命令行参数,一般设为空即可 "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录 "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台 "preLaunchTask": "g++"   // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc } ] }

注意miDebuggerPath要与MinGw的路径对应
替换后保存,然后切换至test.cpp,按F5进行调试,此时会弹出一个信息框要求你配置任务运行程序,点击它~
【笔记】【VSCode】Windows下VSCode编译调试c/c++
在这里随便选一个:

【笔记】【VSCode】Windows下VSCode编译调试c/c++

然后用下面代码替换:

{ "version": "0.1.0", "command": "g++", "args": ["-g","${file}","-o","${file}.exe"], // 编译命令参数 "problemMatcher": { "owner": "cpp", "fileLocation": ["relative", "${workspaceRoot}"], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } }

保存一下,然后切换至test.cpp,再次按F5启动调试~
【笔记】【VSCode】Windows下VSCode编译调试c/c++

完了!

【笔记】【VSCode】Windows下VSCode编译调试c/c++的更多相关文章

  1. 【转载】Windows下VSCode编译调试c&sol;c&plus;&plus;

    懒得自己配置或自己配置出现不明问题的朋友可以点这里: [VSCode]Windows下VSCode便携式c/c++环境 http://blog.csdn.net/c_duoduo/article/de ...

  2. 【VSCode】Windows下VSCode编译调试c&sol;c&plus;&plus;【更新】

    便携版已更新,点此获取便携版 用于cpptools插件的配置文件更新 更新的launch.json // Available variables which can be used inside of ...

  3. 【VSCode】Windows下VSCode编译调试c&sol;c&plus;&plus;【更新 2018&period;03&period;27】

    --------– 2018.03.27 更新--------- 便携版已更新,点此获取便携版 已知BUG:中文目录无法正常调试 用于cpptools 0.15.0插件的配置文件更新 新的launch ...

  4. 【转载】【VSCode】Windows下VSCode编译调试c&sol;c&plus;&plus;

    转载自:http://blog.csdn.net/c_duoduo/article/details/51615381 懒得自己配置或自己配置出现不明问题的朋友可以点这里: [VSCode]Window ...

  5. JAVA 基础开发环境 vscode 搭建 Windows下VSCode编译运行简单java

    JAVA 基础开发环境 vscode 搭建 来源 https://www.cnblogs.com/freewsf/p/7744728.html 对于使用 Visual Studio Code 的 Ja ...

  6. windows下vscode修复c&plus;&plus;找不到头文件

    因为原博客太长将部分内容分开 vscode找不到头文件的问题是由于windows下vscode默认的编译器是微软的MSVC(vs使用的编译器)的头文件路径 如果你没有安装vs肯定会因为找不到头文件而报 ...

  7. 原创 C&plus;&plus;应用程序在Windows下的编译、链接:第一部分 概述

    本文是对C++应用程序在Windows下的编译.链接的深入理解和分析,文章的目录如下: 我们先看第一章概述部分. 1概述 1.1编译工具简介 cl.exe是windows平台下的编译器,link.ex ...

  8. C&plus;&plus;应用程序在Windows下的编译、链接(一)概述

    C++应用程序在Windows下的编译.链接(一)概述 本文是对C++应用程序在Windows下的编译.链接的深入理解和分析,文章的目录如下: 我们先看第一章概述部分. 1概述 1.1编译工具简介 c ...

  9. ACE在windows下的编译及配置(VS2010)

    ACE在windows下的编译及配置(VS2010) 分类:             -[小西南]-              2013-08-06 16:17     2354人阅读     评论( ...

  10. 设置 Quick-Cocos2d-x 在 Windows 下的编译环境

    http://cn.cocos2d-x.org/tutorial/show?id=1304 设置 Quick-Cocos2d-x 在 Windows 下的编译环境 Liao Yulei2014-08- ...

随机推荐

  1. 李洪强iOS经典面试题123

    1.static 关键字的作用: (1)函数体内 static 变量的作用范围为该函数体,不同于 auto 变量,该变量的内存只被分配一次, 因此其值在下次调用时仍维持上次的值; (2)在模块内的 s ...

  2. Win7无法使用VPN的原因与解决方法&lpar;一&rpar;

    如果Windows 7不是通过正常安装途径的话,像Ghost错误.系统环境改变等,都有可能导致无法使用VPN,而且由于原因不同,给出的提示也不尽相同.实际上,万变不离其宗, VPN是要依靠Window ...

  3. Selenium HtmlUnitDriver 多浏览器的支持

    1.HtmlUnitDriver WebDriver包括一个基于HtmlUnit的*面实现,称为HtmlUnitDriver,即使用HtmlUnit时并不会打开真实的浏览器,而是在内存中执行代码,因 ...

  4. 剑指offer 判断树是不是对称的

    html, body { font-size: 15px; } body { font-family: Helvetica, "Hiragino Sans GB", 微软雅黑, & ...

  5. Linux上常用的文件传输方式以及比较

    tp ftp 命令使用文件传输协议(File Transfer Protocol, FTP)在本地主机和远程主机之间或者在两个远程主机之间进行文件传输. FTP 协议允许数据在不同文件系统的主机之间传 ...

  6. 大型网站的 HTTPS 实践(四)——协议层以外的实践

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt390 1 前言 网上介绍 https 的文章并不多,更鲜有分享在大型互联网站 ...

  7. mybatis-分页显示数据

    分页用到的两个实体类 package com.yangwei.shop.entity; /** * 注意 get,set,remove 方法与一般的实体类的不同*/ public class Syst ...

  8. Java Web开发——MySQL数据库的安装与配置

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...

  9. iOS 图片本地存储、本地获取、本地删除

    在iOS开发中.经常用到图片的本地化. iOS 图片本地存储.本地获取.本地删除,可以通过以下类方法实现. p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: ...

  10. e861&period; 在两个组件之间共享输入映射和事件映射

    By sharing an InputMap or ActionMap, any change to the shared InputMap or ActionMap will affect all ...