事实上本篇文档写于此时,是为了迎接我们社团中的可爱的新同学们的,已经有好多新同学问,“学长,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

  1. vscode:全称为visual studio code,是一个代码编辑器,他跟dev-cpp的区别在于,dev-cpp集成了一整套完整的编译,链接到运行加载的工具以及标准库文件,因此相当于”到手即用“的一个工具,而vscode仅仅只有编写代码的功能,并没有其他的编译,链接,加载运行代码的功能,而我们配环境的工作则围绕着”编译,链接,加载运行“这几个关键点去展开。

  2. GCC:全称为GNU C Compiler,也就是GNU C语言编译器,GNU是一个开源计划,而GCC则是我们上面提到的编译,链接中的重要的一环——没错,GCC是一套完整的工具链,虽然名为编译器,但是他集成了编译器,链接器这些重要的工具

    GCC通过可以通过命令行(使用cmd)来生成可执行文件,最简单的如下所示

    gcc main.c
    

    或者是

    gcc main.c -o main
    

    这条命令表示将一个main.c文件编译为一个名为main的可执行文件

    如图所示

main

  1. MinGW:全称为Minimalist GNU for Windows,也就是Windows上的最小可用GNU工具链,他包含一整套GNU工具链以及Windows下的GNU工具链的依赖库,允许你在Windows上使用gcc工具链去编译一个完整的项目

  2. MakeFile:”构建“的意思就是将对一个项目执行编译与链接,最终形成可执行文件,而GNU Make就是一个构建工具,他会查找当前项目的根目录是否存在MakeFile文件,然后运行MakeFile文件的脚本

    可以把MakeFile理解为一个帮你运行上面我们演示过的 gcc的命令的工具,这里我们不需要知道具体如何写MakeFile,感兴趣可以自己去搜索MakeFile的具体的语法

  3. CMake:也是一个构建工具,但是他是生成MakeFile用的,具体的CMake的更多细节不在本篇入门教程的范畴内,读者感兴趣也可自行去了解

那么,说了这么多,读者们应该对这个程序如何运行,以及我们需要去配什么环境,有了一定的了解了,其实我们要做的事情非常简单,首先罗列一个清单

  1. 下载MinGW,获得GNU工具链

  2. 下载CMake,获取构建工具,因为CMake生成MakeFile,而GNU Make可以代替我们构建项目,获得可执行文件

  3. 配置vscode,下载对应的C/C++插件和 CMake Tools插件,让vscode能够调用CMake和gcc编译工具链 工具链

下载MinGW并配置

点击此处去下载

直接到达MinGW的github官网的release页面,选择 w64devkit-1.19.0.zip,直接就能下载

下载好后,解压,可以得到一个完整的MinGW工具链

release

w64devkit文件夹放到一个你喜欢的地方,笔者这里放到了E盘

release

然后我们将这个文件夹的 bin文件夹添加到环境变量

PS:环境变量是什么呢?

当你需要运行某个重要的程序的时候,你的操作系统不可能给你把整个磁盘搜索一遍来找到这个程序,这样效率非常低,所以你可以将这个文件的目录添加到环境变量,那样操作系统下次就会从环境变量中的目录开始搜索文件的路径,这样能够十分高效地查找所需的程序

添加环境变量的办法:

在windows的搜索框中输入”环境变量“,但是注意注意,这里有两个结果,一定要编辑账户的环境变量 path

点击Path变量,然后点击编辑(别点成新建)

path

到这里以后,点击右侧的新建,然后把对应的 E:\w64devkit\bin(记得调整成你自己的bin的绝对路径) 的绝对路径输入进去就好 path

接着一路确定就可以了

如何验证你成功安装了MinGW呢?

同时按住 win + R,输入 cmd,点确定

path

在命令行中输入 gcc -v

path

出现一大串信息以及gcc version的时候就可以确定自己安装成功了!

点击此处下载CMake

直接到达官网,并找到 PlatformWindows X64 Installer,开始下载即可

cmake cmake

运行安装程序,一路确定即可,然后把安装路径下的 cmake\\bin 同样丢进去环境变量,最后再用 cmd 输入命令 cmake --version 验证一下安装即可

cmake

配置Vscode 打开Vscode,点击左侧的Extension,在搜索框输入C/C++,点击前三个下载 cmake

同样的,在搜索框输入 CMake,点击前两个下载 cmake

按F1,点击CMake:Quick Start cmake

起好名字 选择 Create a C Project

然后一定要选 Executable

项目创建完毕以后效果如下 cmake

此处可能存在其他bug,笔者先挖个坑,有空再更新这块

按下 shift+F5即可看到Terminal输出执行结果

cmake

然后在 .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
                }
            ]
        }
    ]
}

搞定后保存,效果如下 vsc

随便打一个断点,接着按下F5启动调试,发现vscode将断点停在了这里,说明断点调试成功了

vsc

然后我们的环境配置就到此结束啦,希望对各位有帮助!

读者遇到什么特殊的bug或者有什么需要补充的欢迎在评论区留言。