VS Code本身就是一个编辑器,又是开源的(好像是吧),所以有十分多的语言可以用VS code编写,C语言也不例外。

刚好最近在学C语言嘛,由于DevC++调试功能在我的电脑环境下(Win10)无法正常使用,Visual C++
6.0过于老啦(虽然也能用),Visual Studio 2010系列,先不说它收费吧,就算你要调试一个Hello World都要新建一个工程,然后才能调试,很无奈。

至于其他IDE,我没有过多研究,之前用的都是Sublime Text3写PHP的,奈何C在Sublime
Text3真的只是个编辑器,丝毫不带调试功能,所以也很鸡肋。

这个时候,Visual Studio Code 横空出世,他至少有以下的优点:

  1. 单个C代码不需要建项目便可以运行。
  2. 调试极为方便,变量信息一览无余,即便是单个C文件也是可以调试的。
  3. 有代码高亮、补全功能
  4. 这个很重要,界面很好看
  5. 安装包只有60M不到,体积小

所以,综上所述,我们来折腾以下VSC(Visual Studio Code)吧!

1.在官方安装新版VSC,并安装。

官方:下载地址

PS:下载Stable版本即可,不需要下载预览版

2.汉化。

这里偷个懒,毕竟我也已经汉化完了,截图不了了。

参考百度经验,如有问题,下面留言吧!

链接地址:https://jingyan.baidu.com/article/a681b0de7654283b184346ea.html

3.安装Visual Studio Code C语言插件。

1)打开软件,左边栏找到那个方框一样的图标,搜索 C/C++ ,选择第一个安装即可。
1.png

4.安装MinGW编译器

官网下载地址:https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/

下载完成后,直接安装就好了,应该是没难度的

随后打开
先选择mingw32-gcc--g++-binmingw32-base-bin,然后选择菜单上的 [Installation] -> [Apply Changes] 静待安装完成即可(记得记住安装路径)。
PS:若无法安装,使用科学上网。
2.png

安装完成后,设置环境变量。

[我的电脑] -> [属性] -> 左侧的 ["高级系统设置"] -> [环境变量] -> [系统变量] -> [Path] -> [编辑]-> [添加] -> 填写你刚刚安装的MinGW的bin文件夹路径 例如:C:MinGWbin,确定即可。
3.png
4.png

至此,MinGW算是完成了安装。

5.写好Visual Studio Code的启动json文件

先打开一个文件夹,然后随便新建一个.c文件,然后按下F5(或者点击调试按钮).

需要注意的是:以后vscode需要调试的文件都需要放在此文件夹下的,否则需要重配编译器的json

随后选择 C++(GDB/LLDB)

5.png

在自动弹出的那个文件中,写入以下数据,注意修改gdb.exe的目录:

// Available variables which can be used inside of strings.
// ${workspaceRoot}: the root folder of the team        
// ${file}: the current opened file                     
// ${fileBasename}: the current opened file's basename 
// ${fileDirname}: the current opened file's dirname    
// ${fileExtname}: the current opened file's extension  
// ${cwd}: the current working directory of the spawned process

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "preLaunchTask": "build",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "C:/MinGW/bin/gdb.exe", // GDB的路径,注意替换成自己的路径
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }]
}

保存以后,再按下F5(或点击调试),弹出错误框,点击配置任务。

6.png
7.png

然后再随便选择一个就可以,会自动弹出一个tasks.json,填入以下内容,可以根据注释自行修改:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build", // 任务名称,与launch.json的preLaunchTask相对应
            "command": "gcc", // 要使用的编译器
            "args": [
                "${file}",
                "-o", // 指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out
                "${fileDirname}/${fileBasenameNoExtension}.exe",
                "-g", // 生成和调试有关的信息
                "-Wall", // 开启额外警告
                "-static-libgcc", // 静态链接
                "--target=x86_64-w64-mingw", // clang的默认target为msvc,不加这一条就会找不到头文件;Linux下去掉这一条
                "-std=c++17", // C语言最新标准为c11,或根据自己的需要进行修改
            ], // 编译命令参数
            "type": "shell", // 可以为shell或process,前者相当于先打开shell再输入命令,后者是直接运行命令
            "group": {
                "kind": "build",
                "isDefault": true // 设为false可做到一个tasks.json配置多个编译指令,需要自己修改本文件,我这里不多提
            },
            "presentation": {
                "echo": true,
                "reveal": "always", // 在“终端”中显示编译信息的策略,可以为always,silent,never。具体参见VSC的文档
                "focus": false, // 设为true后可以使执行task时焦点聚集在终端,但对编译c和c++来说,设为true没有意义
                "panel": "shared" // 不同的文件的编译信息共享一个终端面板
            }
            // "problemMatcher":"$gcc" // 如果你不使用clang,去掉前面的注释符,并在上一条之后加个逗号。照着我的教程做的不需要改(也可以把这行删去)
        }
    ]
}

随后保存。

至此,所有环境配置就完成了,再次按下F5,试试程序是否可以正确的运行吧!

需要注意的是,由于有些程序(例如hello world)最后是没有暂停语句的,所以可能出现一闪而过的情况,解决这个情况可以使用在最后加上两个getchar()函数,我也不知道为什么是两个,有知道的虚心请教啊,也可以在最后添加一个断点。

至于断点什么的,都可以自己研究啦,添加断点的方式也是在行数前面单击即可,十分方便。

至此,一切都完成了,如果还有啥不懂,可以在下面留言。

PS:Sublime Text 3也可以添加编译系统,所以也是可以写C的,只不过目前我没有能否发现调试的方法。

最后修改:2018 年 10 月 27 日
如果觉得我的文章对你有用,请随意赞赏