Visual Studio Code搭建C语言"集成"开发环境

文/Edward

VSCode是微软一个基于Electron框架开发的新一代开源代码编辑器。之前我们在讲述C语言的时候,都是将其定位成为一个代码编辑器来使用的。使用其内嵌的Windows power shell当作命令行终端来执行MinGW的便宜命令,这种方式虽然比较麻烦,但是其开发的过程和方法最大地逼近了Linux下C语言的开发,因此,我们在之前的C语言讲述过程中,选择使用了这种开发方式。但是,这种方式随着你代码的复杂度提升,如果使用gdb工具去做代码的调试,其实是很不方便的,因为命令行为主的操作方式永远都比不过图形化界面来的方便。

本文的内容,将会讲述如何使用VSCode来配置MinGW工具,以达到配置出一个可以直接编译和调试代码的C语言开发环境。


   MinGW的安装

公众号回复“GCC“即可获取MinGW的下载链接。

使用过程很简单,只需要将我们的软件包解压,放到一个特定的位置,如图1所示。

图1 MinGW文件夹

以上的文件夹里面,bin文件夹存放了所有的GCC相关可执行文件,因此我们需要将其添加到环境变量里面。右击“计算机“->”属性”->”高级系统设置”,在弹出的窗口里面选择”高级“标签,再点击”环境变量“,如图2所示。

图2 打开环境变量

然后点击“新建“,输入刚刚MinGW的路径,记住这里需要把路径定位到bin文件夹里面,即输入” C:\MinGW64\bin\“。如图3所示。然后依次点击”确定“退出。

图3 添加环境变量

完成上述操作后,来测试一下环境变量是否添加成功。点击“开始“菜单,输入”cmd“打开”命令操作符“,输入”gcc -v“如果设置都正确,”命令操作符“会输出gcc的版本号,如图4所示。

图4 gcc安装完成

   VSCode安装

VSCode文本编辑器选用的是当下最火的开源软件,微软出品的“visual studio code”,这是一个微软出品的开源跨平台文本编辑器。下载链接:https://code.visualstudio.com/Download。这个编辑软件下载下来,下载界面如图5所示,注意下载的时候,选择“Userinstaller”,然后根据自己电脑的操作系统进行下载。下载完成之后,按照安装向导进行安装,安装路径可以自己随意指定。

图5 Visualstudio code下载界面

下载完成之后,默认在桌面上是不会出现快捷方式的,因此需要在搜索菜单里面找到“visual studio code”软件打开,如图6所示。软件的打开界面如图7所示。

图6 打开Visual studio code

图7 Visualstudio code软件界面

   配置VSCode

首先,我们先创建一个文件夹,用以存放我们的代码,假设我们需要创建的一个文件夹名称为“NumCal”,其位置就位于桌面上。然后我们直接使用VSCode来打开这个文件夹,如图8所示。

图8 VSCode打开文件夹

打开完成文件夹之后,我们就可以在里面创建.c文件并且编写一些代码了,假设我们在这里先创建一个“main.c”的源文件,然后编写几行很简单的代码,如,判断一个输入的数值大小,如果输入的数值在1~100之间就输出“Small”,如果在101~200之间就输出“Middle”,其余情况都输出“Large”,这个代码如图9所示。

图9 数字判断代码

#include<stdio.h>#include "a.h"int main(void) { int number; printf("input:\n"); scanf("%d", &number); if((number > 1) && (number <= 100)) { printf("Small\n"); } else if((number > 101) && (number <= 200)) { printf("Middle\n"); } else { printf("Large\n"); } return 0;}



在这些操作都完成之后,我们现在先来试一下使用VSCode的调试功能,点击菜单栏的“运行”,然后再弹出的菜单里选择“启动调试”。如图10所示。

图10 启动代码调试

此时,VSCode会弹出一个选项,让你选择合适的调试器,这里我们选择“C++(GDB/LLDB)”,如图11所示。

图11 调试器选择

本想着这一次操作可以开启我们使用VSCode的新世界,但是随即而来的是一桶刺骨的冷水,因为它弹出了如图12所示的这一个让人看不懂的界面,这个界面里的内容既像代码,又不像代码,如图12所示。

图12 弹出的看不懂的东西

细心的观众会发现,这一个类似于代码的东西,它好像是被自动生成且保存至本地的“.vscode”文件夹里面的。其实如果有做前端的童鞋就知道,这个json文件其实是一种类似于XML的轻型数据文件,本广泛地用以前端和服务器之间的数据交互。但是为什么VSCode里面也会有这个东西呢?这是由于VSCode是用Electron框架开发的,Election框架的核心编程语言是Node.js,Node.js可以简单地理解成一种可以运行在操作系统本地的,脱离浏览器环境的JavaScript,所以就不难理解,为何VSCode要用json文件来存储数据了。

图13 使用Electron框架,Node.js和Chrome V8引擎技术开发的VSCode

在了解完成launch.json是什么东西之后,我们就来说一下其作用。launch.json其实顾名思义就知道,它作用是在C语言文件启动调试时提供配置参数。这些参数具体有什么作用呢?它们的作用参考图14。

图14 launch.json文件配置内容注释

现在我们可以根据图14所示的注释,对launch.json文件中的内容进行完善。完善之后的代码如图15所示。

图15 修改好的launch.json

{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "build and debug", // 配置名称,将会在启动配置的下拉菜单中显示 "type": "cppdbg", // 配置类型,这里只能为cppdbg "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加) "program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径 "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可 "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false "cwd": "${fileDirname}", // 调试程序时的工作目录,一般为${fileDirname}即代码所在目录 "environment": [], "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台 "MIMode": "gdb", "miDebuggerPath": "D:/software/mingw64/bin/gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应 "preLaunchTask": "gcc", // 这里需要添加一个参数, //调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ]}

此时,我们编辑好这个文件之后,再选择点击菜单栏的“运行”,然后再弹出的菜单里选择“启动调试”。随之而来,一声悲怆的提示音,又给我们冰冷的内心吹了两三遍西北风。弹出的窗口如图16所示。

图16 弹出的错误

图16弹出的窗口,伤害性虽然不大,但是极具侮辱性极高,它使用我们每个都认识的汉字,给我们提示出了这个错误,原来是没有找到任务“gcc”啊。但问题是怎么去找gcc呢?首先先来解释,为什么会弹出这个错误,因为我们在配置launch.json文件的时候,选择了调试之前要先执行gcc任务,那么这个gcc任务到底是什么,VSCode不知道,因此提示我们需要配置。

在弹出的这个提示框上面,选择“配置任务”,随之而来会弹出一个选项,“使用模板创建task.json文件”,如图17所示。

图17 “使用模板创建task.json文件”

遇到这种情况,我们需要毫不犹豫地点下去。点下去之后,又弹出如图18所示的现象。

图18 MSBuild生成“task.json”

此时,我们直接选择第一项“MSBuild执行生成目标”。这时候,又弹出了一个json文件,这个json文件就是我们前面多次看到的那个“task.json”,此时我们又需要对这个文件再配置一次。配置文件的内容如图19所示。

图19 task.json文件

{ "version": "2.0.0", "label": "C/C++: gcc.exe build active file", "command": "gcc", "args": [ "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ],
"problemMatcher": [ "$gcc" ], "group": "build", "detail": "compiler: D:\\software\\mingw64\\bin\\gcc.exe",}

至此为止,整个VSCode C语言调试已经配置完成了,接下来,我们可以返回main.c文件对其设置一些断点,设置完成之后,点击菜单栏的“运行”,然后再弹出的菜单里选择“启动调试”,就可以进入C语言调试了。如图20所示。

图20 C语言调试界面

(0)

相关推荐

  • Python编程的最好搭档:VSCode 详细指南

    刚学Python的同学可能会觉得每次写Python的时候都得打开Cmd有点烦躁,直接上手Pycharm的同学可能会觉得这软件太笨重了,晦涩难用.那么有没有省去打开CMD的步骤,又能弥补Pycharm笨 ...

  • 如何从零开始开发一个 VS Code 插件?

     今天 之前一直以为开发VS code插件是一件很难的事情,后来工作上需要搞一个效率小工具,就试着找了些资料来入门,发现其实就入门和开发一些简单功能的插件来说难度还是很低的.因为vscode本身是基于 ...

  • 单片机学习归纳总结(三):代码编写的前期准备

    注:该文章中所讲述内容均是在VSCode编辑器中操作! 在正式编写业务代码之前,需要先搭建好整体框架,包括忽略文件.代码片段自动生成文件.安装各种插件.防止VSCode编译器报错的文件.各种今后可能会 ...

  • VS CODE一些常见配置操作(快捷键设置、C/C 的debug、代码路径配置)

    总述 今天来一篇简单的操作文章吧,VSCODE是我们经常用的软件,我之前也写过关于VSCODE远程办公的一些的操作(有兴趣的朋友可以点击进去看看),今天我再稍微介绍一些我其他地方用到的一些操作,做个整 ...

  • VsCode插件导出若干讨论

    视窗: %USERPROFILE%\.vscode\extensions 苹果电脑: ~/.vscode/extensions Linux: ~/.vscode/extensions 就是这个目录,自 ...

  • VSCode Snippets 使用指南

    我们在写代码的过程中,常常会遇到一些固定的代码结构,形如输入一串console.log或者输入for的结构甚至是编写redux的reducers等等.反复写这些代码结构,不仅枯燥无聊,也会觉得效率不够 ...

  • 万字长文把VSCode打造成C开发利器,解决你的多重开发需求

    https://m.toutiao.com/is/JHSE2SV/ 作者: denniszhu ,腾讯 CDG 开发工程师 面对大量代码,在开发任务繁重场景下,VSCode 绝对是一把利器.本文虽以 ...

  • VS Code教程(基础操作)

    我该如何"干净"地卸载VS Code? 如果要在卸载VS Code后删除所有用户数据,则可以删除用户数据文件夹Code和.vscode.这将使您返回到安装VS Code之前的状态. ...

  • Linux/Ubuntu中Vs Code配置C /C环境

    这篇博文演示在Ubuntu虚拟机中安装Vs Code并配置C++/C环境 第一步:安装并运行Vs Code 进入应用商店搜索visual studio code并点击install进行安装 安装后在终 ...

  • 如何在Visual Studio Code中构建C/C 编程环境

    Visual Studio Code(简称VS Code)是Microsoft在2015年4月30日Build开发者大会上正式宣布的一个编写现代Web和云应用的跨平台源代码编辑器, 支持Windows ...

  • 使用 Visual Studio Code 进行远程开发

    在完成了 AT 指令入门的学习之后,接下来就要使用 AT 指令进行 Socket 通信了.问题在于,之前 .NET 的 Socket 编程只需一台电脑便可进行学习,服务器和客户端都可以在本机运行,也可 ...

  • 一个好用的Visual Studio Code扩展 - Live Server,适用于前端小工具开发

    Jerry 平时在写一些简单的 SAP UI5 应用时,喜欢从这篇文章里介绍的脚手架应用作为模板,开始编程: 一个用于SAP UI5学习的脚手架应用,没有任何后台API的依赖 上面这篇文章的SAP U ...

  • Ubuntu18.04下搭建VS Code集成开发环境

    想学习Linux编程(C/C++)的小伙伴在刚开始的时候可能都会有这样的困惑,我用什么工具来编辑代码?又如何对编写的代码进行编译?遇到程序bug的时候该如何调试呢?今天我们就来学习一下如何在Ubunt ...

  • Visual Studio Code 1.56稳定版发布

    白开水 OSC开源社区 昨天 文 | 白开水 出品 | OSC开源社区(ID:oschina2013) Visual Studio Code 1.56 稳定版已发布,其中一些主要亮点内容如下: 改进的 ...

  • Visual Studio Code出现乱码怎么办

    使用vscode打开记事本文档时,会出现如上图的乱码. VSCode通常默认UTF-8编码,打开"记事本"编辑的文本文件时会出现乱码,是因为Notepad在简体中文系统下,ANSI ...

  • 使用 Visual Studio Code SQLite 扩展来浏览 SAP Cloud Application Programming 数据库

    在 SAP Cloud Application Programming 编程模型里,我们可以使用下面的命令行,使用持久化数据库( persistent database ) 来存储 entity 的数 ...

  • Visual Studio Code 1.55发布,更新亮点一览

    OSC开源社区 昨天 以下文章来源于FOSS Lab ,作者白开水 FOSS LabFree and Open Source Software,自由与开源软件 Visual Studio Code 1 ...

  • Visual Studio Code 1.54 发布

    御坂弟弟 OSC开源社 Visual Studio Code 1.54 已经发布,亮点内容如下: Apple Silicon构建 -- VS Code 现在可在 Apple Silcon 上使用稳定版 ...