欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

【VSCode】Windows下VSCode编译调试c/c++,vscode编译

来源: javaer 分享于  点击 30030 次 点评:75

【VSCode】Windows下VSCode编译调试c/c++,vscode编译


原文 http://blog.csdn.net/c_duoduo/article/details/51615381


懒得自己配置或自己配置出现不明问题的朋友可以点这里: 
【VSCode】Windows下VSCode便携式c/c++环境 
http://blog.csdn.net/c_duoduo/article/details/52083494 
下载解压即可食用。

————————– 以下是原文 ————————-

这篇文章为blackkitty记录在windows下使用vscode编译调试c/c++的详细过程

首先看效果 
设置断点,变量监视,调用堆栈的查看: 

条件断点的使用: 

下面是配置过程:

总体流程:

  1. 下载安装vscode
  2. 安装cpptools插件
  3. 安装编译、调试环境
  4. 修改vscode调试配置文件
  5. 完了

下载安装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" Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">{
    <span class="hljs-string" >"version"</span>: <span class="hljs-string" >"0.2.0"</span>,
    <span class="hljs-string" >"configurations"</span>: [
        {
            <span class="hljs-string" >"name"</span>: <span class="hljs-string" >"C++ Launch (GDB)"</span>,                 <span class="hljs-comment" >// 配置名称,将会在启动配置的下拉菜单中显示</span>
            <span class="hljs-string" >"type"</span>: <span class="hljs-string" >"cppdbg"</span>,                           <span class="hljs-comment" >// 配置类型,这里只能为cppdbg</span>
            <span class="hljs-string" >"request"</span>: <span class="hljs-string" >"launch"</span>,                        <span class="hljs-comment" >// 请求配置类型,可以为launch(启动)或attach(附加)</span>
            <span class="hljs-string" >"launchOptionType"</span>: <span class="hljs-string" >"Local"</span>,                <span class="hljs-comment" >// 调试器启动类型,这里只能为Local</span>
            <span class="hljs-string" >"targetArchitecture"</span>: <span class="hljs-string" >"x86"</span>,                <span class="hljs-comment" >// 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64</span>
            <span class="hljs-string" >"program"</span>: <span class="hljs-string" >"${file}.exe"</span>,                   <span class="hljs-comment" >// 将要进行调试的程序的路径</span>
            <span class="hljs-string" >"miDebuggerPath"</span>:<span class="hljs-string" >"a:\\MinGW\\bin\\gdb.exe"</span>, <span class="hljs-comment" >// miDebugger的路径,注意这里要与MinGw的路径对应</span>
            <span class="hljs-string" >"args"</span>: [<span class="hljs-string" >"blackkitty"</span>,  <span class="hljs-string" >"1221"</span>, <span class="hljs-string" >"# #"</span>],     <span class="hljs-comment" >// 程序调试时传递给程序的命令行参数,一般设为空即可</span>
            <span class="hljs-string" >"stopAtEntry"</span>: <span class="hljs-keyword" >false</span>,                       <span class="hljs-comment" >// 设为true时程序将暂停在程序入口处,一般设置为false</span>
            <span class="hljs-string" >"cwd"</span>: <span class="hljs-string" >"${workspaceRoot}"</span>,                  <span class="hljs-comment" >// 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录</span>
            <span class="hljs-string" >"externalConsole"</span>: <span class="hljs-keyword" >true</span>,                    <span class="hljs-comment" >// 调试时是否显示控制台窗口,一般设置为true显示控制台</span>
            <span class="hljs-string" >"preLaunchTask"</span>: <span class="hljs-string" >"g++"</span>                    <span class="hljs-comment" >// 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc</span>
        }
    ]
}</code><ul class="pre-numbering" ><li >1</li><li >2</li><li >3</li><li >4</li><li >5</li><li >6</li><li >7</li><li >8</li><li >9</li><li >10</li><li >11</li><li >12</li><li >13</li><li >14</li><li >15</li><li >16</li><li >17</li><li >18</li><li >19</li></ul>

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

然后用下面代码替换:

<code class="hljs bash has-numbering" Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">{
    <span class="hljs-string" >"version"</span>: <span class="hljs-string" >"0.1.0"</span>,
    <span class="hljs-string" >"command"</span>: <span class="hljs-string" >"g++"</span>,
    <span class="hljs-string" >"args"</span>: [<span class="hljs-string" >"-g"</span>,<span class="hljs-string" >"<span class="hljs-variable" >${file}</span>"</span>,<span class="hljs-string" >"-o"</span>,<span class="hljs-string" >"<span class="hljs-variable" >${file}</span>.exe"</span>],    // 编译命令参数
    <span class="hljs-string" >"problemMatcher"</span>: {
        <span class="hljs-string" >"owner"</span>: <span class="hljs-string" >"cpp"</span>,
        <span class="hljs-string" >"fileLocation"</span>: [<span class="hljs-string" >"relative"</span>, <span class="hljs-string" >"<span class="hljs-variable" >${workspaceRoot}</span>"</span>],
        <span class="hljs-string" >"pattern"</span>: {
            <span class="hljs-string" >"regexp"</span>: <span class="hljs-string" >"^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$"</span>,
            <span class="hljs-string" >"file"</span>: <span class="hljs-number" >1</span>,
            <span class="hljs-string" >"line"</span>: <span class="hljs-number" >2</span>,
            <span class="hljs-string" >"column"</span>: <span class="hljs-number" >3</span>,
            <span class="hljs-string" >"severity"</span>: <span class="hljs-number" >4</span>,
            <span class="hljs-string" >"message"</span>: <span class="hljs-number" >5</span>
        }
    }
}</code><ul class="pre-numbering" ><li >1</li><li >2</li><li >3</li><li >4</li><li >5</li><li >6</li><li >7</li><li >8</li><li >9</li><li >10</li><li >11</li><li >12</li><li >13</li><li >14</li><li >15</li><li >16</li><li >17</li></ul>

保存一下,然后切换至test.cpp,再次按F5启动调试~ 

完了!


相关文章

    暂无相关文章

用户点评