VS Code配置C++开发环境-命令面板中搜索不到C++配置

VS Code配置C++开发环境

背景:我在 window10 系统上按照 VS Code 官网配置 C++ 开发环境时,在命令面板中搜索不到 C++ 的 UI 配置选项,只得在 .vscode 目录下手动创建了 tasks.jsonlaunch.jsonc_cpp_properties.json 文件。下面介绍一下这三个配置文件的基本内容。

前置条件:

  1. 已经安装 MinGW 或者 MSYS2,并设置了系统的环境变量。
  2. 安装了 VS Code 以及 C++ 扩展

三个配置文件的内容

tasks.json

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
        "type": "shell",
        "label": "task g++",
        "command": "E:\\Program Files\\msys64\\ucrt64\\bin\\g++.exe",	/*修改成自己bin目录下的g++.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
        "args": [
            "-g",
            "${file}",
            "-o",
            "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "-I",
            "F:\\projects\\C++Projects\\hello",      /*修改成自己放c/c++项目的文件夹,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
            "-std=c++17"
        ],
        "options": {
            "cwd": "E:\\Program Files\\msys64\\ucrt64\\bin"	/*修改成自己bin目录,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
        },
        "problemMatcher":[
            "$gcc"
        ],
        "group": "build",
        
        }
    ]
}

launch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "E:\\Program Files\\msys64\\ucrt64\\bin\\gdb.exe",		/*修改成自己bin目录下的gdb.exe*/
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "task g++"
        }
    ]
}

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "E:\\Program Files\\msys64\\ucrt64\\bin\\g++.exe", /* 根据你的编译器路径设置*/
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "${default}"
        }
    ],
    "version": 4
}

上述三个配置文件中常用字段的作用

tasks.json

  • tasks:包含一个或多个任务的配置,任务的配置包含要执行的命令、参数和执行环境等。
  • type:指定任务的类型。shell 表示这个任务在 shell 环境中执行,类似于在命令行中运行命令。
  • label:任务的标签,用于标识任务。这是用户在命令面板中看到并选择要执行的任务名称。
  • command:定义要执行的命令。
  • args:定义传递给命令的参数。每个元素都是一个参数,按照顺序传递给命令执行。
    • -g:生成调试信息。
    • ${file}:当前打开文件的路径。
    • o:指定输出文件的路径和名称。
    • ${fileDirname}\\${fileBasenameNoExtension}.exe:使用与源文件同目录的路径和源文件的文件名生成可执行文件。
    • -I:指定额外的头文件搜索路径。
    • F:\\projects\\C++Projects\\hello:头文件的搜索路径
    • -std=c++17:使用 C++ 17 标准编译代码。
  • options:配置任务执行时的附加选项。
    • cwd:设置任务执行时的当前工作目录。这里设置为编译器所在目录,因此所有相对路径都会从这个目录开始解析。
    • problemMatcher:定义问题匹配器,用于解析命令输出中的错误和警告,并将其显示在 VS Code 的问题面板中。
      • $gcc:使用内置的 GCC 编译器的输出匹配规则,将编译器输出的错误和警告信息捕捉并显示在编辑器中。
  • group:将任务分配到一个任务组中。
    • build:表示该任务属于“构建”任务组,这意味着可以使用 Run Build Task 命令来运行。

launch.json

  • configurations:包含一个或多个调试配置项的数组。每个配置定义了如何调试特定类型的项目。
  • name:调试配置项的名称,用来标识和选择不同的调试配置。
  • type:调试的类型。
  • request:指定调试的请求类型。launch 表示启动并调试一个程序。另一种常见的类型是attach,用于附加到已经运行的进程中调试。
  • program:指定要调试的可执行文件的路径。
  • args:定义传递给程序的命令行参数。[] 表示没有参数。如果程序需要特定的输入参数,可以在这个数组中添加它们。
  • stopAtEntry:指定调试器是否在程序入口点暂停。如果设置为 true,程序启动后会在 main() 函数或等效入口点处暂停;如果为 false,程序将直接运行直到遇到断点。
  • cwd:指定调试时的当前工作目录。这里设置为工作区根目录,即 ${workspaceFolder}
  • environment:定义环境变量。
  • externalConsole:指定是否在外部控制台(如CMD或终端窗口)中运行程序。true 表示使用外部控制台,这样在调试时可看到完整的输入输出。
  • MIMode:指定调试器的 MI(Machine Interface)模式。gdb 表示使用 GDB 作为调试器。如果使用 LLDB,则应该设置为 lldb
  • miDebuggerPath:指定 MI 调试器的路径。这是调试过程中实际执行调试操作的程序。在此示例中,路径指向 GDB 的可执行文件。

c_cpp_properties.json

  • configurations:是一个数组,包含了针对不同平台或环境的配置。
  • name:配置的名称,用于区分不同的配置。
  • includePath:指定了 IntelliSense 搜索头文件的路径列表。这里的 ["${workspaceFolder}/**"] 表示在工作区文件夹下的所有子文件夹中搜索头文件。${workspaceFolder}表示当前工作区的根目录。
  • defines:定义了预处理器宏定义的列表,这些宏会在编译时传递给编译器。
  • compilerPath:定了编译器的路径,这个路径用于 IntelliSense 来识别代码和生成错误提示、自动补全等功能。
  • cStandard:指定 C 语言标准的版本。
  • cppStandard:指定 C++ 语言标准的版本。
  • intelliSenseMode:指定 IntelliSense 使用的编译器模式。用于告诉编译器 VS Code 应该模拟哪个编译器的行为来提供代码补全、错误检测等功能。${default} 表示使用系统检测到的默认模式。可选项一般有 gcc、clang、MSVC 编译器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值