Vscode搭建C语言多文件开发环境

一、文章内容简介

本文介绍了 "Vscode搭建C语言多文件开发环境"需要用到的软件,以及vscode必备插件,最后多文件编译时tasks.json文件和launch.json文件的配置。即目录顺序。由于内容较多,建议大家在阅读时使用电脑阅读,按照目录来看。

二、前提需要安装软件

①vscode,安装简单,百度一下

②Mingw64,这是windows下的gcc编译和调试工具,免安装,下载解压即可。资源如下博主有:

MinGW-w64 10.0.0 + GCC 12百度云盘下载_mingw-w64 gcc百度云盘-CSDN博客

三、vscode插件配置

安装好vscode之后,必须安装C/C++插件,才能识别.c文件,安装Chinese (Simplified)汉化。

四、tasks.json文件和launch.json文件配置

这两个文件的作用,在此处提前介绍,在五、举例测试中会用到,在此处看明白了文件作用,便于在五中用到时,直接使用。

1.tasks.json文件配置

tasks.json是指定编译器gcc路径,需要编译的.c文件,以及编译后生成的可执行exe文件

Vscode默认配置如下:编译一个.c文件时,不需要修改,如果需要编译多个文件,就需要修改。

单一文件编译,即vscode默认,配置如下:

cpp 复制代码
{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe 生成活动文件",
            "command": "C:\\mingw64\\bin\\gcc.exe",//gcc编译器路径
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",//需要编译的文件,${file}指当前.c文件,多文件时此处需要修改
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",//编译后生成的可执行文件,此处是和当前.c文件同名的.exe文件。
                ""
            ],
            "options": {
                "cwd": "C://mingw64//bin/"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

多文件编译,修改后配置如下: 配置成编译当前文件夹下所有.c文件,并生成a.exe可执行文件。

cpp 复制代码
{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe 生成活动文件",
            "command": "C:\\mingw64\\bin\\gcc.exe",//安装的gcc路径,我的解压后是放在c盘根目录下
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                // "${file}",
                "${fileDirname}\\*.c",//编译当前目录下,所有的.c文件
                // "${fileDirname}\\test.c",//编译当前目录下test.c文件,这种是指定编译哪一个,为了方便,直接编译所有,选上面一种
                "-o",
                // "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "${fileDirname}\\a.exe",//由于是多文件,编译后生成的可执行文件名为a.exe,这个名字再launch.json中要用
                ""
            ],
            "options": {
                "cwd": "C://mingw64//bin/"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

2.launch.json文件配置

launch.json是调试配置文件,需要指定要调试的exe文件,指定调试器gdb的路径。

单一文件 ,vscode默认配置如下:

cpp 复制代码
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++ Runner: Debug Session",
      "type": "cppdbg",
      "request": "launch",
      "args": [],
      "stopAtEntry": false,
      "externalConsole": false,
      "cwd": "c:/Users/Xiasir/Desktop/error",
      "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",//tasks.json生成的单一文件的可执行文件
      "MIMode": "gdb",
      "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe",//gdb执行路径
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

多文件调试,配置如下:

cpp 复制代码
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++ Runner: Debug Session",
      "type": "cppdbg",
      "request": "launch",
      "args": [],
      "stopAtEntry": false,
      "externalConsole": true,//使用内部控制台
      "cwd": "c:/Users/Xiasir/Desktop/error",
      // "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
      "program": "${fileDirname}\\a.exe",//在tasks.json中生成的可执行文件a.exe,a是可执行文件名,由我们自己定义
      "MIMode": "gdb",
      "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe",//调试器gdb的执行路径,我的mingw64安装在C盘,根据你自己的确定
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

五、举例测试

1.建立文件夹 和 多个.c文件

在桌面新建文件夹,命名为test_vscode,并建立main.c和test.c和test.h两个文件。如下图所示:

2.使用vscode打开文件夹

点击test_vscode文件夹,右键,使用vscode打开

3.编辑代码

①main.c代码如下:

cpp 复制代码
#include <stdio.h>
#include "test1.h"

int main(void)
{

    printf("hello world\r\n");
    test();//此函数在test1.c中实现,在test1.h中声明
    return 0;
}

②test1.c代码如下:

cpp 复制代码
#include "test1.h"
#include <stdio.h>

void test(void)
{
    printf("this is test\r\n");

}

③test1.h代码如下:

cpp 复制代码
void test(void);

④配置标题四的的task.json文化和launc.json文件

此时大家按下F5或者Ctrl+F5会发现,会报错,程序不会被执行

点击打开launch.json文件,此时界面如下:

会发现,在图上左边.json文件下没有tasks.json文件,在launch.json中也没有gdb执行路径和可执行文件路径。此时我们需要生成tasks.json文件并修改 ,然后修改launch.json文件

1.生成task.json文件

点击终端--->配置--->使用模板创建tasks.json文件-->others

此时左边.json文件夹下有了tasks.json文件,以及tasks.json中如下。默认的比较简单,也和第四步有点不一样,我们直接复制第四步的tasks.json多文件下的配置。

即:tasks.json改为如下配置:

cpp 复制代码
{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe 生成活动文件",
            "command": "C:\\mingw64\\bin\\gcc.exe",//安装的gcc路径,我的解压后是放在c盘根目录下
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                // "${file}",
                "${fileDirname}\\*.c",//编译当前目录下,所有的.c文件
                // "${fileDirname}\\test.c",//编译当前目录下test.c文件,这种是指定编译哪一个,为了方便,直接编译所有,选上面一种
                "-o",
                // "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "${fileDirname}\\a.exe",//由于是多文件,编译后生成的可执行文件名为a.exe,这个名字再launch.json中要用
                ""
            ],
            "options": {
                "cwd": "C://mingw64//bin/"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}
2.修改launch.json:

复制第四步的launch.json多文件下:

cpp 复制代码
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++ Runner: Debug Session",
      "type": "cppdbg",
      "request": "launch",
      "args": [],
      "stopAtEntry": false,
      "externalConsole": false,//如果想使用外部控制台,改为true即可
      "cwd": "c:/Users/Xiasir/Desktop/error",
      // "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
      "program": "${fileDirname}\\a.exe",//在tasks.json中生成的可执行文件a.exe,a是可执行文件名,由我们自己定义
      "MIMode": "gdb",
      "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe",//调试器gdb的执行路径,我的mingw64安装在C盘,根据你自己的确定
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

⑤编译代码

配置完tasks.json和launch.json文件后,此时按下F5,仍然没法调试,会报错如下:

报错找不到launch.json文件中的可执行文件a.exe。

因为编译器此时并没有进行编译,F5是调试,此时并没有编译。所以得先编译一次,生成可执行文件a.exe。

1.生成可执行文件a.exe

此时点击终端->运行生成任务,也可按快捷键ctrl+shift+b生成可执行文件a.exe

2.运行可执行文件a.exe

**执行方式一:**此时再按下F5,就会顺利执行a.exe文件,执行结果如下:

**执行方式二:**在vscode内置终端下,输入命令.\a.exe也可执行。

六、总结

通过这一篇文章看下来,会觉得vscdoe配置起来非常的麻烦,确实不如集成开发环境好用,但是vscode这主题很舒服,看着方便。折腾下来,发现配置也是按照代码编译原理的逻辑来配置的。

首先是程序员编写代码,然后调用编译器gcc编译成可执行文件,最后调试时调用gdb进行调试。

1.因此在编译时需要指定:需要编译的源文件,gcc的位置,编译后生成的可执行文件名,tasks.json中完成。

2.在调试时需要指定:可执行文件名,调试器gdb的路径。在launch.json中完成。

相关推荐
ŧ榕树先生2 小时前
稳定的Android studio版本安装教程
android·ide·android studio
kovlistudio3 小时前
红宝书第二十九讲:详解编辑器和IDE:VS Code与WebStorm
开发语言·前端·javascript·ide·学习·编辑器·webstorm
一一代码4 小时前
ide技术
ide·python
源代码•宸5 小时前
Visual Studio Code SSH 连接超时对策( keep SSH alive)
运维·服务器·ide·经验分享·vscode·ssh
wodongx1239 小时前
Android Studio安装配置
android·ide·android studio
爱趣五科技15 小时前
H5DS编辑器教程——企业级雪花特效开发指南
前端·安全·编辑器·音视频
张屿秋15 小时前
在Unity中,如果物体上的脚本丢失,可以通过编写一个自定义编辑器脚本来查找并删除这些丢失的组件
unity·编辑器·游戏引擎
青花瓷15 小时前
VSCode中结合DeepSeek使用Cline插件的感受
ide·人工智能·vscode·大模型·编辑器·deepseek
向日葵.17 小时前
vscode使用方式
ide·vscode·编辑器
还是鼠鼠19 小时前
Node.js自定义中间件
javascript·vscode·中间件·node.js·json·express