一、前言
使用vscode编写单页面的小程序还是很方便的,但是,它不是集成开发环境,编写相应的程序,比如C语言,需要安装对应的插件和扩展,配置起来相对比较麻烦一些,但是用熟练了就非常好用,无论是调试还是编码,vscode都相当强大,毕竟是微软的玩意,下边总结一下:如何使用vscode来编写C语言。
- 首先下载vscode,地址:https://code.visualstudio.com/
- 然后对vscode进行汉化(看个人习惯,我这里汉化了一下),在vscode的左方功能列表中,可以找到 Extensions,点选后输入 “Chinese” 即可搜寻到中文的相关语系,选择中文(繁体)后页面的右方即会出现相关介绍,此时按下 “Install” 就会安装中文语系套件。
- 安装后系统会自动跳出是否切换成该语系,让你重新启动,按下 ResStart now后就会套用成中文版啰~如下:
不过人生中最怕的就是那个 “But”,如果没有自动跳出右下方的提示该如何切换呢?另外 VSCode 如果更新时,可能也会再次切换为英文版,这时候就需要手动切换语系。
手动切换流程也并不复杂,可使用以下三个步骤手动切换
- 按下 ctrl shift P(Mac 版请按下 cmd shift P)
- 输入 display language 就会跳出 “Configure Display Language”
- 选择安装的语系 “zh-tw” 即可安装
然后开始进入主题,在桌面新建一个文件夹,取名为:ZZULIOJ,然后进入该文件夹,对着资源管理器里的路径进行cmd,输入:code . (后边的点别忘了)如下:
这个时候,vscode就默认打开该文件夹,进入到环境当中了,如下:
在左边可以再新建文件夹,或者一些文件等等…
接下来安装编写C语言需要的插件和配置环境变量,如下
- 首先在vscode里安装两个扩展,分别是C/C 和code runnne
- 然后接着下载MinGW,解压到相应盘中(我这里解压到了D盘)然后配置环境变量,环境变量的配置我这里配置了两个,一个就是在系统环境变量中原有的path后边加上解压后的MinGW的路径,即到bin的路径(我的是:D:MinGWbin),还有一个是INCLUDE环境变量,首先检查自己的系统环境变量里有没有INCLUDE,如果没有就新建一个,然后把mingw的include路径加进去,(我的是:D:MinGWinclude),然后打开cmd,在窗口里输入gcc -v,如下:
下载编译器:MinGW-w64 - for 32 and 64 bit Windows 往下稍微翻一下,选最新版本中的
x86_64-posix-seh
。最好不要用 Download Latest Version,这个是在线安装包,可能因为国内的“网络环境”下载失败。如果浏览器下载失败就换迅雷下或者连手机开的热点下,还失败,那就使用能访问Google的那种方法下。
即成功了
- 然后创建配置文件,我们需要创建三个json文件,分别是:launch.json,task.json,setting.json
首先创建task.json。按Ctrl shift b,
点击如上图中的文字:没有找到要运行的生成任务……结果如下:
再继续点击:使用模板创建task.json文件,出现如下页面:
点击最后一个,即可生成task.json文件。将里边的内容替换,如下:
代码语言:javascript复制{
// 有关 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
}
}
}]
}
然后点击F5,选择GDB/LLDB,如下:
就会生成launch.json文件,将里边的内容替换为:
代码语言:javascript复制{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
// "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
// "program": "${workspaceFolder}/Demo/${fileBasenameNoExtension}.exe",
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:\MinGW\bin\gdb.exe",
"preLaunchTask": "gcc",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
其中miDebuggerPath是你自己的MinGW中的gdb.exe路径
最后对着左边空白处,右键新建文件,取名为:setting.json,如下:
内容为:
代码语言:javascript复制{
"files.associations": {
"tidl_alg_int.h": "c",
"limits": "c"
}
}
到这里就结束了,测试如下:
在根目录下新建一个文件夹 取名为Demo,在里边再新建一个1000文件夹,在1000文件夹里新建1000.c文件(这个随意),代码如下:
代码语言:javascript复制#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b, sum;
scanf ("%d %d", &a, &b);
sum = a b;
printf("%dn", sum);
system("pause");
}
点击F5运行:
文件夹随意建,编译器都能找到你的C语言文件,因为上边的launch.json中,我们配置的是:动态获取文件夹路径,动态获取的文件名称!!!