Visual Studio Code 配置C、C++环境/编译并运行的流程分析

 更新时间:2020年05月19日 11:36:12   作者:banana`  
这篇文章主要介绍了Visual Studio Code 配置C、C++环境/编译并运行的流程分析,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

总体流程:

下载安装vscode
安装cpptools插件
安装编译、调试环境
修改vscode调试配置文件
下载安装vscode
https://code.visualstudio.com/Download  

安装cpptools插件

打开vscode,按ctrl+p打开快速命令框,输入以下命令后等待

ext install cpptools

vscode在短暂的联网查找后会列出插件列表,如图:

这里写图片描述
这里写图片描述 

点击箭头所指处的按钮安装插件,安装过程可能会有些慢耐心等待
安装完成后vscode会提示你重启vscode,此时重启即可

安装编译、调试环境

(若是电脑上原来装着codeblocks,Dev C++等可以跳过这步,

直接跳到 【配置系统环境变量path】 这步即可)

目前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】

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

Windows7注意,要加入,不是覆盖!我第一次不小心把原来路径覆盖了。。。(因为win7不像win10那么明显是加入。。)

这里写图片描述 

再次打开vscode,注意配置系统环境变量path后重启一下vscode
注意vscode调试需要在打开的文件夹中进行(注意!是用VSC打开文件夹!!,单独打开一个单独的cpp是没有下面的几个配置文件出现的!!也就是说,这个cpp要在一个文件夹里!不像DevCpp和C-Free可以直接调试一个单独的cpp!!)

打开文件夹后,新建test.cpp进行输入代码测试:

这里写图片描述 

如图示进入调试界面选择C++:

这里写图片描述
这里写图片描述 

然后会在工作目录下的生成一个launch.json的启动配置文件:

这里写图片描述 

使用下面代码替换该文件:(只是在vsc自己产生的json文件加了一些行)

launch.json中有很多属性可以设置, 通过智能提示查看有那些属性可以设置, 如果要查看属性的具体含义, 可以把鼠标悬停在属性上面, 会属性的使用说明.

 { 
    "version": "0.2.0", 
    "configurations": [ 
      { 
        "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示 
        "type": "cppdbg",    // 配置类型,这里只能为cppdbg 
        "request": "launch",  // 请求配置类型,可以为launch(启动)或attach(附加) 
        "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径 
        "args": [],       // 程序调试时传递给程序的命令行参数,一般设为空即可 
        "stopAtEntry": false,  // 设为true时程序将暂停在程序入口处,一般设置为false 
        "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录 
        "environment": [], 
        "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台 
        "MIMode": "gdb", 
        "miDebuggerPath": "C:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应 
        "preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc 
        "setupCommands": [ 
          {  
            "description": "Enable pretty-printing for gdb", 
            "text": "-enable-pretty-printing", 
            "ignoreFailures": true 
          } 
        ] 
      } 
    ] 
  }

注意miDebuggerPath要与MinGw的路径对应

替换后保存,然后切换至test.cpp,按F5进行调试,此时会弹出一个信息框要求你配置任务运行程序,点击它~

这里写图片描述 

在这里随便选一个或others:

这里写图片描述 

然后用下面代码替换:

 {
    "version": "0.1.0",
    "command": "g++",
    "args": ["-g","${file}","-o","${fileBasenameNoExtension}.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启动调试~

这里写图片描述

配置c_cpp_properties.json
在编辑器中,有小波浪的就是代码有问题,看下#include,左边有个灯泡,点击后跳出配置文件,修改其中的Win32的”includePath”如下,和上文一样,根据自己的路径进行调整即可。经测试,下图中代码的注册部分仍是必要部分

 {
    "name": "Win32",
    "includePath": [
      "C:/Program Files/MinGW/include/*",
      "C:/Program Files/MinGW/lib/gcc/mingw32/5.3.0/include/*"
      "C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/*",
      "C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/mingw32/*",
      "C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/backward/*"
    ],
    "browse": {
      "limitSymbolsToIncludedHeaders": true,
      "databaseFilename": ""
    }
  }

这里写图片描述 

一劳永逸:因为VS需要为每一个文件夹做单独配置,所以建议把.vscode文件夹放到你常用的文件夹的顶层,这样就不用重复配置了。
不用每个新cpp文件就要一套配置。这些配置在你配置好的文件夹内的所有子文件夹和文件都能使用。

这里写图片描述

最后效果:

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

这里写图片描述

条件断点的使用:

这里写图片描述

由于vscode还不支持中文名文件调试,因此最好不要使用中文命名文件

总结

到此这篇关于Visual Studio Code 配置C、C++环境/编译并运行的流程分析的文章就介绍到这了,更多相关vscode 配置C、C++环境编译并运行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++高级数据结构之并查集

    C++高级数据结构之并查集

    这篇文章主要介绍了C高级数据结构之并查集,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • C语言中sizeof()与strlen()的区别详解

    C语言中sizeof()与strlen()的区别详解

    这篇文章主要给大家介绍了关于C语言中sizeof()与strlen()区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • C语言如何正确的终止正在运行的子线程

    C语言如何正确的终止正在运行的子线程

    这篇文章主要介绍了C语言如何正确的终止正在运行的子线程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • 通过C++程序示例理解设计模式中的外观模式

    通过C++程序示例理解设计模式中的外观模式

    这篇文章主要介绍了通过设计模式中的外观模式及相关的C++程序示例,外观模式在高层提供了一个统一的接口实现一定程度上的解耦,需要的朋友可以参考下
    2016-03-03
  • QT5连接MySQL实现增删改查

    QT5连接MySQL实现增删改查

    这篇文章主要为大家详细介绍了QT5如何连接MySQL实现增删改查功能,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的可以了解一下
    2022-12-12
  • C++编辑距离(动态规划)

    C++编辑距离(动态规划)

    这篇文章主要介绍了C++编辑距离(动态规划),编辑距离是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数,限免详细内容,需要的小伙伴可以参考一下
    2022-01-01
  • OpenCV实现图像距离变换

    OpenCV实现图像距离变换

    这篇文章主要为大家详细介绍了OpenCV实现图像距离变换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 用C++类实现单向链表的增删查和反转操作方法

    用C++类实现单向链表的增删查和反转操作方法

    下面小编就为大家带来一篇用C++类实现单向链表的增删查和反转操作方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • C++实现Dijkstra算法的示例代码

    C++实现Dijkstra算法的示例代码

    迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法。本文将用C++实现Dijkstra算法,需要的可以参考一下
    2022-07-07
  • 对比C语言中getc()函数和ungetc()函数的使用

    对比C语言中getc()函数和ungetc()函数的使用

    这篇文章主要介绍了对比C语言中getc()函数和ungetc()函数的使用,是C语言入门学习中的基础知识,需要的朋友可以参考下
    2015-08-08

最新评论