使用VS Code搭建C开发环境

2017-08-04  本文已影响0人  xdqkid

今年准备考研,所以最近在稍微复习数据结构,所以又要开始写C啦

在被JetBrains的IDE惯坏了之后,除了Clion外别的IDE的UI都难以接受。Clion适合写项目,而我需要很多写简单的C代码,这个时候用起来Clion就感觉不是那么友好了。在一番折腾后,我选择用VS Code编写C语言代码。

使用VS Code的优点有如下几条:

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

以上1~3条,对于初学C的程序员来说简直是福音,因为DEV、CB等等,谁用谁知道(逃

环境搭建

(一)基本运行环境搭建

由于VS Code本身只是编译器,所以搭建开发环境前,需要VS Code需要安装C的插件C/C++ for Visual Studio Code(在VSCode中按Ctrl + Shift + X,搜索安装一下即可),并且下载好MinGW。MinGW我是放在C盘根目录下的 C:\MinGW,配置launch.json时注意与本机MinGw的路径对应

首先需要在VS Code中打开一个文件夹作为C的运行文件夹,编写好C程序好,按F5,提示选择环境选C++gdb会生成".vscode"的文件夹,并弹出launch.json的文件,用以下内容代替。

{
   "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch", 
            "type": "cppdbg", 
            "request": "launch",
            "targetArchitecture": "x86",
            "program": "${file}.exe", 
            "miDebuggerPath": "c:\\MinGW\\bin\\gdb.exe", // 注意这里要与本机MinGw的路径对应
            "args": [], 
            "stopAtEntry": false, 
            "cwd": "${workspaceRoot}",
            "externalConsole": true, 
            "preLaunchTask": "g++"
        }
    ]
}

然后,在C程序界面按F5,报错提示,选择配置任务运行程序会在".vscode"文件夹自动生成tasks.json文件,并用以下内容代替代替原有内容。

{
    "version": "0.1.0",
    "command": "g++",
    "isShellCommand": true,
    "showOutput": "always",
    "args": ["-g","${file}","-o","${file}.exe"],
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}

接下来再按F5,便可以运行啦,是不是很舒服~

(二)显示控制台内容&&中文乱码

通过上面简单的步骤便可以搭建C的运行环境了,美中不足的是每次都需要自己来手动IO操作 || 来暂停控制台查看程序运行结果,另外中文还是乱码。

这里吐槽一下M$的CMD真的丑啊,用的还不是UTF-8编码。

解决的思路就是在程序运行前将控制台切换到UTF-8编码,程序运行后暂停控制台。

这里简单带过一下C的一些知识。一般程序从main()函数开始执行到main()结束。需要注意的是,在main()函数结束return 0之前,还是可以执行一些操作的。另外通过GCC我们可以添加构造函数和解析函数,通过这些工具,就可以解决问题了。

  1. 在".vscode"文件夹下新建head.h头文件,并填下以下代码。
#include <stdlib.h>
static void before(void) __attribute__((constructor));
static void after(void) __attribute__((destructor));
static void middle(void);
static void before()
{
    system("chcp 65001"); //切换字符集
    system("cls");
}
static void after()
{
    system("echo.");
    system("pause");
}
  1. 修改tasks.json,用以下内容替换。
{
    "version": "0.1.0",
    "command": "g++",
    "isShellCommand": true,
    "showOutput": "always",
    "args": ["-g","${file}","-include","${workspaceRoot}\\.vscode\\head.h","-o","${file}.exe"], //修改的是这一行,添加了-include命令,预编译头文件
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}

通过上面的简单步骤,很快就可以搭建起C的开发环境了,还能学到C的不少知识,是不是觉得很舒服呢?

上一篇下一篇

猜你喜欢

热点阅读