如何用vscode配置C语言环境?
事实上本篇文档写于此时,是为了迎接我们社团中的可爱的新同学们的,已经有好多新同学问,“学长,C语言的环境怎么配置呀“,”学长,vscode怎么用呀“,于是我写下这篇(并不入门的)东西,来教学弟学妹们在windows中配置一下vscode的环境。
本文不仅会讲解如何去配置环境,也会讲解为什么要配置这样的环境,旨在帮助学弟学妹们在配置的过程中对计算机系统产生初步的了解。
忠心提示,出于一些众所周知的原因,在阅读本文之前你最好有办法能稳定,迅速连上github!
首先我要解释一下,什么叫”配置环境“?我们到底要配置什么?
要回答这个问题,我们首先要粗浅的了解一下C语言从代码文本变成真正可运行的程序的。
#include <stdio.h>
int main () {
printf("hello world");
}
如果大家有在dev-cpp之类的软件去实践过的话,会看到这个程序最后会在终端窗口中输出:
hello world
其实从代码文本,到程序执行的整个过程仔细展开来讲非常复杂,我只简要的概括一下:
首先,每一份单独的 C语言文件(称为源文件,后缀是 .c
)的代码文本会进入编译器,编译器会将每一份源文件转换为对应的机器能识别的汇编代码文件(后缀一般是 .s
或者 .asm
),而汇编代码又会被编译器进一步处理,生成对应的机器代码文件,或者称为目标文件(后缀一般是 .o
),这里有一点要尤其注意源文件和目标文件是一一对应的关系,也就是 main.c
会被编译生成 main.o,test.c
会被编译生成 test.o
。
而编译器生成的目标文件,最终会被打包给链接器,链接器会根据多个目标文件以及其调用的库文件,来生成最终的可执行文件(一般没有后缀或者后缀为 .exe
),可执行文件可以在计算机上直接运行,而用命令行窗口加载这个文件,就可以得到 hello world
的最终输出结果了。
而实际过程还有无数的细节要去深究,我们在此不再做展开,毕竟这是一篇入门向的教程。
回到我们的正题,如何配置VsCode环境呢?
我们首先要了解几个关键词:
vscode,GCC,MinGW,MakeFile,CMake
-
vscode:全称为visual studio code,是一个代码编辑器,他跟dev-cpp的区别在于,dev-cpp集成了一整套完整的编译,链接到运行加载的工具以及标准库文件,因此相当于”到手即用“的一个工具,而vscode仅仅只有编写代码的功能,并没有其他的编译,链接,加载运行代码的功能,而我们配环境的工作则围绕着”编译,链接,加载运行“这几个关键点去展开。
-
GCC:全称为GNU C Compiler,也就是GNU C语言编译器,GNU是一个开源计划,而GCC则是我们上面提到的编译,链接中的重要的一环——没错,GCC是一套完整的工具链,虽然名为编译器,但是他集成了编译器,链接器这些重要的工具
GCC通过可以通过命令行(使用cmd)来生成可执行文件,最简单的如下所示
gcc main.c
或者是
gcc main.c -o main
这条命令表示将一个main.c文件编译为一个名为main的可执行文件
如图所示
-
MinGW:全称为Minimalist GNU for Windows,也就是Windows上的最小可用GNU工具链,他包含一整套GNU工具链以及Windows下的GNU工具链的依赖库,允许你在Windows上使用gcc工具链去编译一个完整的项目
-
MakeFile:”构建“的意思就是将对一个项目执行编译与链接,最终形成可执行文件,而GNU Make就是一个构建工具,他会查找当前项目的根目录是否存在MakeFile文件,然后运行MakeFile文件的脚本
可以把MakeFile理解为一个帮你运行上面我们演示过的 gcc的命令的工具,这里我们不需要知道具体如何写MakeFile,感兴趣可以自己去搜索MakeFile的具体的语法
-
CMake:也是一个构建工具,但是他是生成MakeFile用的,具体的CMake的更多细节不在本篇入门教程的范畴内,读者感兴趣也可自行去了解
那么,说了这么多,读者们应该对这个程序如何运行,以及我们需要去配什么环境,有了一定的了解了,其实我们要做的事情非常简单,首先罗列一个清单
-
下载MinGW,获得GNU工具链
-
下载CMake,获取构建工具,因为CMake生成MakeFile,而GNU Make可以代替我们构建项目,获得可执行文件
-
配置vscode,下载对应的C/C++插件和 CMake Tools插件,让vscode能够调用CMake和gcc编译工具链
下载MinGW并配置
直接到达MinGW的github官网的release页面,选择 w64devkit-1.19.0.zip,直接就能下载
下载好后,解压,可以得到一个完整的MinGW工具链
将w64devkit
文件夹放到一个你喜欢的地方,笔者这里放到了E盘
然后我们将这个文件夹的 bin
文件夹添加到环境变量
PS:环境变量是什么呢?
当你需要运行某个重要的程序的时候,你的操作系统不可能给你把整个磁盘搜索一遍来找到这个程序,这样效率非常低,所以你可以将这个文件的目录添加到环境变量,那样操作系统下次就会从环境变量中的目录开始搜索文件的路径,这样能够十分高效地查找所需的程序
添加环境变量的办法:
在windows的搜索框中输入”环境变量“,但是注意注意,这里有两个结果,一定要编辑账户的环境变量
点击Path
变量,然后点击编辑(别点成新建)
到这里以后,点击右侧的新建,然后把对应的 E:\w64devkit\bin
(记得调整成你自己的bin的绝对路径) 的绝对路径输入进去就好
接着一路确定就可以了
如何验证你成功安装了MinGW呢?
同时按住 win + R
,输入 cmd
,点确定
在命令行中输入 gcc -v
出现一大串信息以及gcc version
的时候就可以确定自己安装成功了!
直接到达官网,并找到 Platform
的 Windows X64 Installer
,开始下载即可
运行安装程序,一路确定即可,然后把安装路径下的 cmake\\bin
同样丢进去环境变量,最后再用 cmd
输入命令 cmake --version
验证一下安装即可
配置Vscode
打开Vscode,点击左侧的Extension
,在搜索框输入C/C++
,点击前三个下载
同样的,在搜索框输入 CMake
,点击前两个下载
按F1,点击CMake:Quick Start
起好名字 选择 Create a C Project
然后一定要选 Executable!
项目创建完毕以后效果如下
此处可能存在其他bug,笔者先挖个坑,有空再更新这块
按下 shift+F5
即可看到Terminal
输出执行结果
然后在 .vscode文件夹下新建 launch.json,并将下面的 json语句直接复制进去
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
// Resolved by CMake Tools:
"program": "${command:cmake.launchTargetPath}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [
{
// add the directory where our target was built to the PATHs
// it gets resolved by CMake Tools:
"name": "PATH",
"value": "${env:PATH}:${command:cmake.getLaunchTargetDirectory}"
},
{
"name": "OTHER_VALUE",
"value": "Something something"
}
],
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
搞定后保存,效果如下
随便打一个断点,接着按下F5启动调试,发现vscode将断点停在了这里,说明断点调试成功了
然后我们的环境配置就到此结束啦,希望对各位有帮助!
读者遇到什么特殊的bug或者有什么需要补充的欢迎在评论区留言。