使用VScode编写C语言程序 环境安装配置 保姆级教程

Visual Studio Code可通过安装插件来支持C++、C#、Python、PHP等语言,使用的工程师越来越多,本文介绍如何使用VS Code进行C语言的编译与调试

目录

[一 vsCode配置C/C++环境](#一 vsCode配置C/C++环境)

[1. vsCode下载和安装](#1. vsCode下载和安装)

[2. 安装vsCode](#2. 安装vsCode)

[二 MinGW编译器下载和配置](#二 MinGW编译器下载和配置)

[1. 下载编译器MinGW并解压](#1. 下载编译器MinGW并解压)

[2. 将MinGW添加至环境变量](#2. 将MinGW添加至环境变量)

[3. 检查是否配置成功](#3. 检查是否配置成功)

[三 VsCode配置c/c++](#三 VsCode配置c/c++)

[1. 下载c/c++插件](#1. 下载c/c++插件)

[2. 新建文件夹编写代码](#2. 新建文件夹编写代码)

[3. 调整和优化/配置](#3. 调整和优化/配置)

4.launch.json和task.json文件

[5. 测试运行代码](#5. 测试运行代码)

[四 问题补充](#四 问题补充)


一 vsCode配置C/C++环境

1. vsCode下载和安装

  • 下载Microsoft vsCode

官网:Visual Studio Code - Code Editing. Redefined

首先我们需要下载vscode安装包,根据不同系统选择,这里介绍windows系统

2. 安装vsCode

VScode安装包下载后,直接双击如下,点击同意,然后点击下一步

安装步骤如下:注意安装路径可以做修改,自定义到自己熟知的安装路径!!!

二 MinGW编译器下载和配置

1. 下载编译器MinGW并解压

你可以进入官网自行寻找,也可以直接点击为你找好的下载页面

  • 在线安装------下载MinGW-W64-install.exe(速度慢)
  • 下载压缩包------×86_64-posix-sjlj(速度快)

!!!注意,离线安装包说是安装包,其实下载后不需要安装,只需要将下载后的文件解压,然后放到你想要的位置即可。解压后的文件大致如下图:

2. 将MinGW添加至环境变量

进入mingw64下的bin文件夹,复制当前路径

Win + i 唤起系统设置,输入高级系统设置并进入

点击环境变量,选择path,编辑,新建,粘贴路径,按下三个确定

3. 检查是否配置成功

  1. win+R 打开cmd,

  2. 输入gcc -v 或g++ -v

此时配置成功!

三 VsCode配置c/c++

1. 下载c/c++插件

打开VScode安装插件 ChineseC/C++ ,等待安装完毕后重启VScode

切换C/C++插件至 1.8.4 版本

因最新版本不会自动生成launch.json文件,给后续优化带来不便,故退回旧版本。

(这里也可以不切换,直接在文件夹下新建.vscode文件,新建task.json和launch.json文件即可)

2. 新建文件夹编写代码

  • 新建文件夹,修改为英文名称并进入,右键 通过Code打开

  • 若在安装时未勾选相关选项,可能没有这个选项,请自行在VScode内操作打开文件夹

  • 新建一个文件,英文命名且扩展名为 .c

  • 编写相关代码

    cpp 复制代码
    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        printf("Hello World!\n");
        printf("你好世界!\n");
        system("pause");    // 防止运行后自动退出,需头文件stdlib.h
        return 0;
    }
  • VScode菜单栏,点击运行,启动调试,稍等程序运行,输出结果在下方终端,上方调试面板,点击最右边的 橙色方框 停止程序运行

3. 调整和优化/配置

请根据自己的需要进行优化

代码运行后 .vscode 文件夹会自动生成在你的源文件目录下

.vscode 文件夹下的 task.jsonlaunch.json 用来控制程序的运行和调试

  • 将程序运行在外部控制台【推荐】

    • 打开.vscode 文件夹下的 launch.json 文件,找到 "externalConsole": false,false 改为 true 并保存

  • 解决中文乱码问题【推荐】

    • 打开.vscode 文件夹下的 task.json 文件,找到 "${fileDirname}\\${fileBasenameNoExtension}.exe" 在后面加上英文 逗号 然后回车到下一行,粘贴下面文本 "-fexec-charset=GBK" 并保存

4.launch.json和task.json文件

launch.json:

cpp 复制代码
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe build and debug active file", // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg", // 配置类型,这里只能为cppdbg
            "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)  
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径    
            "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
            "cwd": "${fileDirname}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录  
            "environment": [],
            "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台  
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\software\\c++\\mingw64\\bin\\gdb.exe", // miDebugger的路径,注意这里要与自己电脑安装的MinGw的路径对应
            "preLaunchTask": "g++.exe build active file", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

task.json:

cpp 复制代码
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "g++.exe build active file",
            "type": "shell",
            "command": "D:\\software\\c++\\mingw64\\bin\\g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-fexec-charset=GBK"
            ], // 编译命令参数
            "group": "build",
            "options": {
                "cwd": "D:\\software\\c++\\mingw64\\bin"
            },
            // Use the standard MS compiler pattern to detect errors, warnings and infos
            "problemMatcher": [
                "$gcc"
            ]
        }
    ]
}

5. 测试运行代码

打开test.c,按F5运行:测试成功如下图!

四 问题补充

此时可以看到右侧文件资源管理器中.c文件和.exe文件相互穿插,不太方便。

同样可进行配置优化如下:

  • 收纳生成的 exe 可执行文件【可选】

    • 打开.vscode 文件夹下的 task.json 文件,找到 "${fileDirname}\\${fileBasenameNoExtension}.exe"

    • 修改成 "${fileDirname}\\coin\\${fileBasenameNoExtension}.exe" 并保存,同理,launch.json 下也有相同的字段,需要你修改

    • 在源文件同目录下新建 coin 文件夹,程序运行后,可执行文件将会生成在里面(其中 coin 可修改成你喜欢的英文名字)

      这样 .c 文件一多起来的时候,就不会出现 .exe.c 相互穿插在目录中^-^

相关推荐
TeYiToKu6 分钟前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
互联网打工人no113 分钟前
每日一题——第一百二十四题
c语言
爱吃生蚝的于勒15 分钟前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
羊小猪~~19 分钟前
数据结构C语言描述2(图文结合)--有头单链表,无头单链表(两种方法),链表反转、有序链表构建、排序等操作,考研可看
c语言·数据结构·c++·考研·算法·链表·visual studio
洋24039 分钟前
C语言常用标准库函数
c语言·开发语言
脉牛杂德1 小时前
多项式加法——C语言
数据结构·c++·算法
legend_jz1 小时前
STL--哈希
c++·算法·哈希算法
CSUC1 小时前
【C++】父类参数有默认值时子类构造函数列表中可以省略该参数
c++
Vanranrr1 小时前
C++ QT
java·c++·qt
徐嵌1 小时前
STM32项目---畜牧定位器
c语言·stm32·单片机·物联网·iot