配置vscode c语言环境
01 前言
Vscode是什么?
VSCode(Visual Studio Code)是微软于2015年发布的一款开源免费的代码编辑器。许多人认为VSCode是一个IDE,这么说其实是不准确的。IDE(Integrated Development Environment,集成开发环境)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。常见的IDE有Code::Blocks,Visual Studio,IDEA等。单独的VSCode只能说是一个代码编辑器,但是我们可以借助若干丰富插件实现编译器、调试器等的功能,从这个角度看,VSCode也算是一个IDE。
02 软件准备
官网下载 Vscode软件
安装步骤如下图:
这里不用理会,直接点击下一步即可
这里记得在最后一项打上勾!
-
Vscode的界面是英文的,我们需要汉化,下载汉化的扩展即可
步骤:扩展 -> 在搜索框输入 Chinese -> 选择插件Chinese (Simplified) Language Pack for Visual Studio Code
,点击install安装插件 -> 重启Vscode
如图:
03 下载MinGW 配置环境变量
- 下载编译器 MinGW
Ps:由于这个网站得开代理,不然会很慢,在这里给出我已经下载好的64位系统的安装包,https://cyz4531.lanzous.com/i1h6Uegrsje
网站如图:
安装的位置随意,不过要特别注意一点,就是安装路径中不能带有中文和空格,也就是文件命名时,不能出现中文和空格
-
配置环境变量:
步骤:右击此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 找到path
-> 双击进入编辑 -> 把MinGW目录下的bin目录的路径
保存进去(比如我的D:\Vscode\MinGW\MinGW\bin
) -
验证MinGw的环境变量是否配置成功
步骤:按下Win+R
-> 输入cmd
-> 打开命令行之后,输入gcc -v
-> 看到如下图的显示,即为配置成功
04 编写Vscode的配置文件
打开Vscode,新建一个文件夹,命名为Vscode,然后再新建一个
.vscode
的隐藏文件,然后在该文件夹下新建三个文件,分别为launch.json
,tasks.json
,setting.json
如图:
- 分别把以下代码复制进去即可
- launch.json -> 该文件负责配置Vscode
注意:
"miDebuggerPath"
后面的路径必须得与MinGw下的gdb.exe路径
对应,改为你的路径即可
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceFolder}/${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录
"environment": [],
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"MIMode": "gdb",
"miDebuggerPath": "D:\\Vscode\\MinGW\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
"preLaunchTask": "gcc", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
- tasks.json -> 该文件告诉Vscode如何构建(编译)程序
{
// 有关 tasks.json 格式的参考文档:https://go.microsoft.com/fwlink/?LinkId=733558 。
"version": "2.0.0",
"tasks": [
{
"label": "gcc",
"type": "shell", // { shell | process }
// 适用于 Windows 的配置:
"windows": {
"command": "gcc",
"args": [
"-g",
"\"${file}\"",
"-o",
"\"${fileDirname}\\${fileBasenameNoExtension}.exe\""
// 设置编译后的可执行文件的字符集为 GB2312:
// "-fexec-charset", "GB2312"
// 直接设置命令行字符集为 utf-8:
// chcp 65001
]
},
// 定义此任务属于的执行组:
"group": {
"kind": "build", // { build | test }
"isDefault": true // { true | false }
},
// 定义如何在用户界面中处理任务输出:
"presentation": {
// 控制是否显示运行此任务的面板。默认值为 "always":
// - always: 总是在此任务执行时显示终端。
// - never: 不要在此任务执行时显示终端。
// - silent: 仅在任务没有关联问题匹配程序且在执行时发生错误时显示终端
"reveal": "silent",
// 控制面板是否获取焦点。默认值为 "false":
"focus": false,
// 控制是否将执行的命令显示到面板中。默认值为“true”:
"echo": false,
// 控制是否在任务间共享面板。同一个任务使用相同面板还是每次运行时新创建一个面板:
// - shared: 终端被共享,其他任务运行的输出被添加到同一个终端。
// - dedicated: 执行同一个任务,则使用同一个终端,执行不同任务,则使用不同终端。
// - new: 任务的每次执行都使用一个新的终端。
"panel": "dedicated"
},
// 使用问题匹配器处理任务输出:
"problemMatcher": {
// 代码内问题的所有者为 cpp 语言服务。
"owner": "cpp",
// 定义应如何解释问题面板中报告的文件名
"fileLocation": [
"relative",
"${workspaceFolder}"
],
// 在输出中匹配问题的实际模式。
"pattern": {
// The regular expression.
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
// 第一个匹配组匹配文件的相对文件名:
"file": 1,
// 第二个匹配组匹配问题出现的行:
"line": 2,
// 第三个匹配组匹配问题出现的列:
"column": 3,
// 第四个匹配组匹配问题的严重性,如果忽略,所有问题都被捕获为错误:
"severity": 4,
// 第五个匹配组匹配消息:
"message": 5
}
}
}
]
}
- setting.json
{
"files.associations": {
"tidl_alg_int.h": "c",
"limits": "c"
}
}
05 运行程序
新建一个文件,命名为
Hello.c
,把以下C语言代码复制进去,按F5
运行
#include <stdio.h>
int main()
{
printf("Hello,World!\n");
return 0;
}
注意:此时会发现有一个黑框一闪而过,然后终端显示“终端将被任务重用,按任意键关闭”,说明你的配置是没问题的,程序已经正常运行了!之所以会一闪而过,没有停留,是因为Vscode不会自己在程序末尾停止,和IDE不一样。
那么有什么办法可以让它不一闪而过,可以停留呢?办法当然是有的!
有三种办法
- 在最后加一行加上断点
- 在最后加一行加上getchar()
- 在最后一行加上system(“pause”);
- 看个人喜好了,我习惯在末尾加上一行
system("pause");
代码,程序就会在最后停住了
如图:
闲谈
要想让Vscode成功的运行一个程序,是需要为这个文件夹做单独配置,也就是配置一个完整的
.vscode文件
,所以建议把.vscode文件夹放到你常用的文件夹的顶层,这样就不用重复配置了,这些配置在你配置好的文件夹内的所有子文件夹和文件都能使用。
如果新建了另一个文件夹存放c语言代码,只需把
.vscode文件
复制一份,粘贴到该文件夹中即可
当然Vscode还是有很多好用的插件,而且还可以设置背景,可以给你的界面配上一幅美美的背景图哦!关注我,我来告诉你,嘿嘿!个人博客:https://www.cyz4531.top
上一篇: php在同一个文件中定义多个命名空间
下一篇: php—Cookie的使用