VSCode C/C++环境设置

VSCode配置C/C++编程环境

一、VSCode 简介

​ VSCode 即Visual Studio Code, 是微软开发的免费开源跨平台代码编辑器,支持多语言编程与扩展插件,集成调试、Git及高效编码工具,深受开发者青睐。 它本身是一款轻量的代码编辑器,不附带任何编程语言环境,需要自行安装编程语言,VSCode通过在线安装扩展插件来配置相应编程语言的开发环境。

二、MinGW 下载

MinGW官网

SourceForge下载

三、扩展安装

在VSCode扩展商店搜索C/C++,安装下图框选的程序。只需安装其中一个即可,不过第二个使用更便捷,对新手友好。

请添加图片描述

四、编译运行和调试

4.1 C/C++ Runner 插件

​ C/C++ Runner 插件安装好后,只要GCC的程序路径(MinGW64/bin)在Path环境变量中(在任何cmd窗口都能使用gcc、g++或gdb),便可以直接通过快捷键进行编译、运行、调试了。

4.1.1 单文件编译运行调试

快捷键说明
Ctrl + Alt + B编译,生成一个build文件夹
Ctrl + Alt + R运行。需要先编译。
Ctrl + Alt + D调试。需要先编译。路径中不能有中文(解决方法见下)。

4.1.2 多文件编译运行调试

安装C/C++ Runner 插件后,底部状态栏会出现新的工具,分别是源文件目录,编译方式(Debug/Release), 编译,运行,清理编译文件,调试。点击目录可以选择源文件目录,点击编译按钮便会编译该目录下的所有源文件,生成build文件夹存放目标文件和可执行程序。
在这里插入图片描述

4.2 C/C++ 插件

(1).vscode文件

​ 如果想自定义gcc或gdb路径,只需修改自动生成的.vscode文件夹下的文档。文档内容解说见下(文档和下面插件所需的文档相似)。

​ C/C++ 插件安装好后,需要手动配置环境。操作方法如下:

​ 1. 在当前工作目录下创建 .vscode 文件夹。

​ 2. 在vscode文件夹中创建两个json文件:tasks.json, launch.json。

​ tasks.json 用于配置编译器,设置编译命令,生成可执行文件。

​ launch.json 用于配置gdb调试器。该插件默认用gdb来运行程序,而gdb对中文路径的支持不太友好,所以即使不调试,只运行,也不能有中文路径。

​ VSCode 支持以下变量,用于动态生成文件路径或参数:

${file}:当前打开的文件路径。

${fileDirname}:当前文件的目录路径。

${fileBasename}:当前文件的文件名(包括扩展名)。

${fileBasenameNoExtension}:当前文件的文件名(不包括扩展名)。

${workspaceFolder}:工作区根目录路径。


tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build C Program",
            "type": "shell",
            // "type": "process",
            // "type": "cppbuild",
            "command": "gcc",   // gcc程序路径
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": {
                "kind": "build",
                "isDefault": true	// 使用快捷键时默认运行此任务
            },
            "problemMatcher": [
                "$gcc"
            ],
            "detail": "使用 gcc 编译当前文件"
        },
    ]
}

强调一下

​ "tasks"是个列表,它可以包含多个任务,说白了就是编译配置。以上只列出了一个编译配置。

​ "group"属性:

​ “kind”: "build"表示这是一个编译任务,

​ “isDefault” 属性表示是默认的编译任务(使用快捷键Ctrl+Shift+B编译默认使用该任务)。

​ “label”: “Build C Program” 表示这个任务的名称,如果没有设置默认任务,编译时,会显示该任务的"label"和"detail"供用户选择。


launch.json
{
  "version": "0.2.0",
  "configurations": [
      {
          "name": "Debug C Program",
          "type": "cppdbg",
          "request": "launch",
          "program": "${workspaceFolder}\\${fileBasenameNoExtension}.exe", // 程序路径
          "args": [], // 命令行参数
          "stopAtEntry": false,
          "cwd": "${workspaceFolder}", // 工作目录
          "environment": [], // 环境变量
          "externalConsole": false,		// 是否使用外部终端显示输出
          "MIMode": "gdb", // 使用 GDB 作为调试器
          "setupCommands": [
              {
                  "description": "Enable pretty-printing for gdb",
                  "text": "-enable-pretty-printing",
                  "ignoreFailures": true
              }
          ],
          "preLaunchTask": "Build C Program", // 调试前运行的任务
          "miDebuggerPath": "gdb" // GDB 路径
      }
  ]
}

强调一下

​ "program"属性指定要调试的可执行文件。必须是绝对路径,并且不含中文字符。

​ "cwd"属性指定要调试的源文件所在路径。必须是绝对路径,并且不含中文字符。

​ “miDebuggerPath” 属性指定gdb程序路径。

​ “preLaunchTask” 属性指定在调试前,先完成编译任务。其值和tasks.json文件中任务的 "label"属性相对应。

​ “stopAtEntry” 属性表示是否在调试时自动停在入口函数处。

​ “externalConsole” 属性表示是否在调试时调用CMD窗口运行程序,为false时则在内置终端运行程序,注意内置终端的输出编码为utf-8, 而gdb调试器的输出编码为gbk,所以在内置终端中进行gdb调试输出的一般是乱码

(2) 编译、运行、调试方式
操作步骤快捷键
编译终端 > 运行生成任务Ctrl+Shift+B
运行运行 > 以非调试模式运行Ctrl+F5
调试运行 > 启动调试F5

五、插件设置

5.1 自定义插件设置

齿轮图标 - 设置(Settings)
快捷键 Ctrl + ,
在这里插入图片描述
扩展(Extensions):选择对应的插件进行参数设置。
在这里插入图片描述

六、VSCode 运行包含中文路径的GDB 调试解决办法

​ 该方法能彻底解决调试时中文路径报错的问题。使用该方法后,允许VSCode的工作路径中包含中文,生成的可执行文件的路径或文件名包含中文。

​ 该方法通过修改系统的语言设置来达到目的。但是该方法会产生以下副作用:

  1. 文件资源管理器出现BUG。具体表现为系统的文件路径可能出现乱码,导致某些文件夹不能打开、某些文件不能读取、写入。外部移动U盘识别不了或文件写入、读取失败等问题。

  2. 安装新程序时,安装步骤界面可能会有中文乱码。

    不过,该方法是可逆的,如果问题很大,可以修改回来。

    具体步骤如下:

    1. 打开设置
    2. 时间和语言
    3. 语言
    4. 管理语言设置
    5. 更改系统区域设置
    6. 勾选"Beta版"
    7. 确定并重启电脑

附图如下:

更改系统区域设置

请添加图片描述

勾选"Beta版"
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

念致达

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值