Visual Studio Code运行 C/C++ 配置

安装C++插件

image.png

如上图,请安装:

  • C/C++
  • C/C++ Extension Pack

两个插件。 其中C/C++ Extension Pack包含图中的:C/C++ ThemesCMakeCMake Tools 3个插件。

如果没有安装完全,请手动搜索插件名称进行安装。

配置C++插件

前提:下载mingw64并配置环境变量,请确保在系统内已经配置完成了g++编译器。
需要配置三个json格式文件。如下:
① tasks.json : 编译器构建 配置文件 ;
② launch.json : 调试器设置 配置文件 ;
③ c_cpp_properties.json : 编译器路径和智能代码提示 配置文件 ;

在Visual Studio Code中,对于 C++ 这类编译型语言,“构建”(编译代码)和 “调试”(运行并检查程序)是两个独立但又需要协作的过程。tasks.json 和 launch.json 就是分别管理这两个过程的配置文件。

通过VSCode,打开代码的工程文件夹,如果不存在请创建一个文件夹,用以后续存放代码文件(不要带上中文)

比如,我的代码全部存放在:D:\C++Codes\demo_test

img
在这里插入图片描述

在这里插入图片描述

在代码文件夹内,新建文件夹,名称:.vscode

在.vscode内,创建3个文件,并复制如下内容:

文件1:c_cpp_properties.json
c_cpp_properties.json 是 Visual Studio Code (VSCode) 中用于支持 C/C++ 编程的一个重要配置文件,由微软官方提供的 C/C++ 扩展生成并维护。其主要作用包括:

  • 配置 IntelliSense:通过设置编译器路径、头文件搜索路径等信息,使得 VSCode 能够提供高效的代码补全、代码跳转等功能。
  • 配置编译器:指定编译器类型和版本,确保代码分析和调试信息与实际编译器一致。
  • 配置调试和运行环境:为不同的操作系统和环境(如 Windows、Linux、macOS)定制不同的编译和运行配置。

在这里插入图片描述

或者按 Ctrl + Shift + P ,选中C/C++:编辑配置(UI),也会自动会生成.vscode文件夹和包含c_cpp_properties.json文件
在这里插入图片描述
在这里插入图片描述
c_cpp_properties.json
内容:

{
    "configurations": [
        {
          "name": "Win32",
          "includePath": [
          		"${workspaceFolder}/**"
          	],
          "defines": [
          		"_DEBUG", 
          		"UNICODE", 
          		"_UNICODE"
          	],
          "windowsSdkVersion": "10.0.17763.0",
          "compilerPath": "D:\\ProgramData\\mingw64\\bin\\g++.exe",   /*修改成自己bin目录下的g++.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
          "cStandard": "c11",
          "cppStandard": "c++17",
          "intelliSenseMode": "${default}"
        }
      ],
      "version": 4
}

关键字段详解(./vscode/c_cpp_properties.json)
其中,configurations 是一个配置数组,可以为不同的平台和环境定义多个配置。name 是配置的名称,includePath 列出包含路径,defines 定义宏,compilerPath 指定编译器路径,cStandard 和 cppStandard 设定语言标准,intelliSenseMode 指定 IntelliSense 的工作模式。合理配置此文件有助于提高开发效率和代码质量。
请修改compilerPath对应的路径,修改为自己系统中安装mingw中g++程序的位置

如:

  • 我的mingw安装在:D:\ProgramData\mingw64
  • 所以,我应该填入的配置内容是:D:\\ProgramData\\mingw64\\bin\\g++.exe

注意,所有的路径符号均为:\\

文件2launch.json (或者点击上方工具栏中的添加配置,也会生成launch.json)。
该文件告诉 VS Code 的调试器(Debugger)如何启动、附加和控制你的程序。
img

launch.json内容

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",  // 程序路径必须和 tasks.json 的输出路径完全一致
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录 
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\ProgramData\\mingw64\\bin\\gdb.exe",		/*修改成自己bin目录下的gdb.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "task g++"  // 【核心修正】预启动任务的 label 必须和 tasks.json 中的一致
        }
    ]
}

关键字段详解(./vscode/launch.json)
“name”: “g++.exe build and debug active filet” 作用:此调试配置的名称。它会显示在 VS Code 左侧 “运行和调试” 面板的下拉菜单中。

“program”: “${fileDirname}\${fileBasenameNoExtension}.exe” 作用:要启动并调试的程序的完整路径。这个路径必须与 tasks.json 中 -o 参数指定的输出路径完全一致。这是确保“前厅”能拿到“后厨”刚做好的那道菜的关键。

“cwd”: “${workspaceFolder}” 作用:为你正在调试的程序设置工作目录。确保它与构建时的工作目录一致,可以避免很多潜在问题。

“externalConsole”: true 作用:true 表示启动调试时,会弹出一个独立的外部控制台窗口(Windows上是cmd.exe或powershell)来运行你的程序,而不是使用 VS Code 内置的“调试控制台”。

“preLaunchTask”: “Build Calculator Project” 作用:连接“后厨”与“前厅”的桥梁。它告诉调试器:“在启动 program 之前,请先去 tasks.json 文件里找到 label 为 Build Calculator Project 的那个任务,并执行它。” 这确保了你每次调试的都是最新编译的版本。

请修改miDebuggerPath对应的路径,修改为自己系统中安装mingw中gdb.exe程序的位置
如:

  • 我的mingw安装在:D:\\ProgramData\\mingw64
  • 所以,我应该填入的配置内容是:D:\\ProgramData\\mingw64\\bin\\gdb.exe

注意,所有的路径符号均为:\\;2、"preLaunchTask"的内容要与task.json中的"label"内容相同。

文件3tasks.json (或者点击上方“终端”栏中的“配置任务”,也会生成tasks.json)
该文件定义了 VS Code 如何调用外部工具(如编译器 g++)来执行任务。我们的核心任务就是编译源代码。

img

tasks.json内容

{
    "version": "2.0.0",
    "tasks": [
        {
        "type": "shell",
        "label": "task g++",
        "command": "D:\\ProgramData\\mingw64\\bin\\g++.exe",	/*修改成自己bin目录下的g++.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
        "args": [
            "-g",
            "${file}",
            "-o",
            "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "-I",
            "D:\\C++Codes\\C++Study",      /*修改成自己放c/c++项目的文件夹,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
            "-std=c++17"
        ],
        "options": {
            "cwd": "D:\\ProgramData\\mingw64\\bin"	/*修改成自己bin目录,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
        },
        "problemMatcher":[
            "$gcc"
        ],
        "group": "build",
        
        }
    ]
}

关键字段详解(.vscode/tasks.json)
“label”: “task g++” 作用:任务的 “名字”,一个人类可读的标签。这个名字非常重要,因为 launch.json 将通过它来调用此任务。

“command”: “D:\ProgramData\mingw64\bin\g++.exe” 作用:要执行的外部命令,这里是你的 g++.exe 编译器的完整路径。

“args”: [ … ] 作用:一个字符串数组,包含了所有传递给 command 的命令行参数。

-g:告诉编译器生成调试信息,这是让 GDB 调试器能够工作的关键。 “ w o r k s p a c e F o l d e r / m a i n . c p p " , . . . :核心修改。这里我们明确列出了所有需要一起编译的源文件。 {workspaceFolder}/main.cpp", ...:核心修改。这里我们明确列出了所有需要一起编译的源文件。 workspaceFolder/main.cpp",...:核心修改。这里我们明确列出了所有需要一起编译的源文件。{workspaceFolder} 是 VS Code 的一个变量,代表你当前打开的项目根文件夹。
-o”KaTeX parse error: Expected '}', got 'EOF' at end of input: …ns": { "cwd": "{workspaceFolder}" } 作用:cwd (Current Working Directory) 指定了执行 command 时的工作目录。将其设置为项目根目录是最佳实践,可以确保所有相对路径(如源文件名)都能被正确解析。

“group”: { “isDefault”: true } 作用:将此任务设置为默认的“构建”任务。这样,当你按下 Ctrl+Shift+B(默认的构建快捷键)时,VS Code 会自动运行这个任务。

  • 修改文件中的command的值为,你电脑中g++程序的路径,请参考c_cpp_properties.json文件中的记录
  • 填入你写代码文件夹的路径
  • 填入mingw安装的路径,如上所示

注意,所有的路径符号均为:\\

工作流程如何串联

当你按下 F5(开始调试)时,VS Code 内部的完整流程如下:

  1. launch.json 响应 F5 事件,找到名为 “g++.exe build and debug active file” 的配置。
  2. 它检查到 “preLaunchTask”: “task g++” 字段。
  3. 它暂停启动,转而去 tasks.json 中寻找 label 为 “task g++” 的任务。
  4. 找到后,执行该任务:调用 g++,将 XXX.cpp, … 编译链接成一个XXX.exe 文件,并存放在当前文件夹中。
  5. 构建任务成功结束后,launch.json 的流程继续。
  6. 它启动 “program” 字段指定的XXX.exe 程序,并根据配置(如 externalConsole: true)为其提供运行环境。
  7. GDB 调试器附加到新启动的程序上,调试会话正式开始。

测试环境是否配置成功

在代码文件夹内创建一个新的代码,如:hello_world.cpp

#include "iostream"
using namespace std;

int main()
{
    cout << "Hello World From Visual Studio Code." << endl;

    system("pause");

    return 0;
}

请注意,在第8行额外添加了system("pause");代码,功能是确保程序编译并执行后不会立刻退出,否则运行结果会一闪而过。

按键盘:F5开始执行代码。

img

如上,成功。

如果黑窗口闪退,请确认是否在return 0;代码前添加:system("pause");这一行代码。

参考:

1.Visual Studio Code 配置
2.VS Code C++ 项目构建与调试配置详解 (tasks.json & launch.json)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值