【VSCode】Windows下VSCode编译调试c/c++
2016-10-16 23:50
956 查看
懒得自己配置或自己配置出现不明问题的朋友可以点这里:
【VSCode】Windows下VSCode便携式c/c++环境
http://blog.csdn.net/c_duoduo/article/details/52083494
下载解压即可食用。
————————– 以下是原文 ————————-
这篇文章为blackkitty记录在windows下使用vscode编译调试c/c++的详细过程
首先看效果
设置断点,变量监视,调用堆栈的查看:
![](https://img-blog.csdn.net/20160608210322984)
条件断点的使用:
![](https://img-blog.csdn.net/20160608210405892)
下面是配置过程:
总体流程:
下载安装vscode
安装cpptools插件
安装编译、调试环境
修改vscode调试配置文件
完了
下载安装vscode
https://code.visualstudio.com/Download
![](https://img-blog.csdn.net/20160608213033177)
点击下载自己喜欢的相应版本,绿色版解压即可食用
安装cpptools插件
打开vscode,按ctrl+e打开快速命令框,输入以下命令后等待
ext install cpptools
vscode在短暂的联网查找后会列出插件列表,如图:
![](https://img-blog.csdn.net/20160608214306180)
点击箭头所指处的按钮安装插件,安装过程可能会有些慢耐心等待
安装完成后vscode会提示你重启vscode,此时重启即可
安装编译、调试环境
目前windows下调试仅支持 Cygwin 和 MinGW。
这里使用的是MinGW.
下面是MinGW的安装配置过程:
http://mingw.org/
进入官网点击右侧 Download Installer下载安装器
打开安装器点击install准备安装:
![](https://img-blog.csdn.net/20160608215745424)
选择一个安装目录,默认为C:\MinGW这里选择的是A:\MinGW
点击Continue开始安装,安装过程需联网,若安装时提示error则需翻墙安装
安装过程很快,结束后Continue按钮恢复为可用状态,点击完成安装。
![](https://img-blog.csdn.net/20160608220258320)
打开MinGW安装管理器进行进一步配置
![](https://img-blog.csdn.net/20160608220513630)
注意这里gdb必选,否则无法调试
![](https://img-blog.csdn.net/20160609000552086)
选中几个需要的项右键Make for Installation进行标记,其中gcc和g++为c和c++编译器
选择完全部想要安装的项后点击左上角Installation菜单下的Apply Changes应用修改,过程需联网,中间出现error可先继续,若最后失败则需翻墙更新,建议翻墙
然后配置系统环境变量path,这一步为必须
在 我的电脑 上右键 属性:
然后按照下面步骤做即可,注意最后新建的项要与之前MinGW安装位置相对应
![](https://img-blog.csdn.net/20160608221746698)
修改vscode调试配置文件
再次打开vscode,注意配置系统环境变量path后重启一下vscode
注意vscode调试需要在打开的文件夹中进行
打开文件夹后,新建test.cpp进行输入代码测试:
![](https://img-blog.csdn.net/20160608222838684)
如图示进入调试界面选择C++:
![](https://img-blog.csdn.net/20160608223007858)
![](https://img-blog.csdn.net/20160608223103765)
然后会在工作目录下的生成一个launch.json的启动配置文件:
![](https://img-blog.csdn.net/20160608223303441)
使用下面代码替换该文件:
注意miDebuggerPath要与MinGw的路径对应
替换后保存,然后切换至test.cpp,按F5进行调试,此时会弹出一个信息框要求你配置任务运行程序,点击它~
![](https://img-blog.csdn.net/20160608224046717)
在这里随便选一个:
![](https://img-blog.csdn.net/20160608224840837)
然后用下面代码替换:
保存一下,然后切换至test.cpp,再次按F5启动调试~
【VSCode】Windows下VSCode便携式c/c++环境
http://blog.csdn.net/c_duoduo/article/details/52083494
下载解压即可食用。
————————– 以下是原文 ————————-
这篇文章为blackkitty记录在windows下使用vscode编译调试c/c++的详细过程
首先看效果
设置断点,变量监视,调用堆栈的查看:
条件断点的使用:
下面是配置过程:
总体流程:
下载安装vscode
安装cpptools插件
安装编译、调试环境
修改vscode调试配置文件
完了
下载安装vscode
https://code.visualstudio.com/Download
点击下载自己喜欢的相应版本,绿色版解压即可食用
安装cpptools插件
打开vscode,按ctrl+e打开快速命令框,输入以下命令后等待
ext install cpptools
vscode在短暂的联网查找后会列出插件列表,如图:
点击箭头所指处的按钮安装插件,安装过程可能会有些慢耐心等待
安装完成后vscode会提示你重启vscode,此时重启即可
安装编译、调试环境
目前windows下调试仅支持 Cygwin 和 MinGW。
这里使用的是MinGW.
下面是MinGW的安装配置过程:
http://mingw.org/
进入官网点击右侧 Download Installer下载安装器
打开安装器点击install准备安装:
选择一个安装目录,默认为C:\MinGW这里选择的是A:\MinGW
点击Continue开始安装,安装过程需联网,若安装时提示error则需翻墙安装
安装过程很快,结束后Continue按钮恢复为可用状态,点击完成安装。
打开MinGW安装管理器进行进一步配置
注意这里gdb必选,否则无法调试
选中几个需要的项右键Make for Installation进行标记,其中gcc和g++为c和c++编译器
选择完全部想要安装的项后点击左上角Installation菜单下的Apply Changes应用修改,过程需联网,中间出现error可先继续,若最后失败则需翻墙更新,建议翻墙
然后配置系统环境变量path,这一步为必须
在 我的电脑 上右键 属性:
然后按照下面步骤做即可,注意最后新建的项要与之前MinGW安装位置相对应
修改vscode调试配置文件
再次打开vscode,注意配置系统环境变量path后重启一下vscode
注意vscode调试需要在打开的文件夹中进行
打开文件夹后,新建test.cpp进行输入代码测试:
如图示进入调试界面选择C++:
然后会在工作目录下的生成一个launch.json的启动配置文件:
使用下面代码替换该文件:
<code class="hljs cs has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;">{ <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"version"</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"0.2.0"</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"configurations"</span>: [ { <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"name"</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"C++ Launch (GDB)"</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 配置名称,将会在启动配置的下拉菜单中显示</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"type"</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"cppdbg"</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 配置类型,这里只能为cppdbg</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"request"</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"launch"</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 请求配置类型,可以为launch(启动)或attach(附加)</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"launchOptionType"</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Local"</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 调试器启动类型,这里只能为Local</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"targetArchitecture"</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"x86"</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"program"</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"${file}.exe"</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 将要进行调试的程序的路径</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"miDebuggerPath"</span>:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"a:\\MinGW\\bin\\gdb.exe"</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// miDebugger的路径,注意这里要与MinGw的路径对应</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"args"</span>: [<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"blackkitty"</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"1221"</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"# #"</span>], <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 程序调试时传递给程序的命令行参数,一般设为空即可</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"stopAtEntry"</span>: <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">false</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 设为true时程序将暂停在程序入口处,一般设置为false</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"cwd"</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"${workspaceRoot}"</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"externalConsole"</span>: <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">true</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 调试时是否显示控制台窗口,一般设置为true显示控制台</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"preLaunchTask"</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"g++"</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc</span> } ] }</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li></ul>
注意miDebuggerPath要与MinGw的路径对应
替换后保存,然后切换至test.cpp,按F5进行调试,此时会弹出一个信息框要求你配置任务运行程序,点击它~
在这里随便选一个:
然后用下面代码替换:
<code class="hljs bash has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;">{ <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"version"</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"0.1.0"</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"command"</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"g++"</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"args"</span>: [<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"-g"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">${file}</span>"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"-o"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">${file}</span>.exe"</span>], // 编译命令参数 <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"problemMatcher"</span>: { <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"owner"</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"cpp"</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"fileLocation"</span>: [<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"relative"</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">${workspaceRoot}</span>"</span>], <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"pattern"</span>: { <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"regexp"</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$"</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"file"</span>: <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"line"</span>: <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"column"</span>: <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"severity"</span>: <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"message"</span>: <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span> } } }</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li></ul>
保存一下,然后切换至test.cpp,再次按F5启动调试~
相关文章推荐
- 【VSCode】Windows下VSCode编译调试c/c++【更新】
- 【vscode】vscode在windows与ubuntu下编译调试C/C++
- 【VSCode】Windows下VSCode编译调试c/c++
- Windows下VSCode编译调试c/c++
- 【VSCode】Windows下VSCode编译调试c/c++
- [置顶] 【VSCode】Windows下VSCode编译调试c/c++【更新】
- 【VSCode】Windows下VSCode编译调试c/c++【更新】
- 在Windows 10 中用 Bash on Windows(WSL) 给 VSCode 搭建 编译调试 C/C++ 环境
- 【VSCode】Windows下VSCode编译调试c/c++
- 【转载】【VSCode】Windows下VSCode编译调试c/c++
- Windows下配置VSCode编译/调试C/C++:launch.json配置
- linux环境下vscode 中C/C++编译及调试环境的搭建
- C_Cpp-VSCode-编译调试C/C++
- 在ubuntu中用vscode编译调试C\C++
- 记录一下ubuntu下采用vscode编译调试c/c++
- linux下VSCODE编译调试C++流程
- VSCode C++配置编译调试
- windows 10环境下 使用 msys2 + vs code 配置 c++ 的编译环境(转)
- 在Linux中使用VS Code编译调试C++项目(gcc/g++、Makefile入门、vs code)
- 【vscode】使用vscode多源文件结合opencv编译调试 C/C++