【不完整笔记】VSCode-C++开发环境配置

网上有很多关于如何从零开始一步步搭建vscode的C++环境的教程文章,本文就不重复流程了,更多的是记录一些细节要点,主要是配置文件的写法,也作为我学习过程中的笔记备忘。

.vscode文件夹

在顶层目录新建,子目录都生效。开发C++时,文件夹中需要包含3个文件:

  1. 任务配置 task.json
  2. 运行配置 lauch.json
  3. C++开发配置 c_cpp_properties.json

task.json文件

task描述了需要调用什么命令来执行任务,相当于直接在命令行cmd中执行命令。对应到c++开发,就是程序构建的过程。

需要关注的项有:

  • "label"项:这是此任务的名称,会被`lanch.json`中的`preLaunchTask`所使用。
  • "command"项:这是执行的命令,如果时C++开发,就是`g++`,`gcc`这些构建命令,注意,这些命令需要添加到系统的环境变量中。
  • "args"项:执行命令时的输入参数,g++一般就采用默认的。
  • "presentation"项:默认生成的json这个项是没有的,当每次运行时出现"终端将会被重用"的消息时,就手动加上这项,并设置这里边的"panel"项等于 "new"就可以去掉这个消息了。(这项指每个进程创建新的端口,默认是shared表示共享,则在编译其他工程时会出现"终端将会被重用"的消息)

以下是一个完整的task.json,可直接复制使用。

//task.json
{
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?LinkId=733558
    "version": "2.0.0",
    "tasks": [{
            "label": "my_g++",//任务的名称,lanch.json中的preLaunchTask所使用。
            "command": "g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}.exe"
            ],
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            },
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "new", //这里shared表示共享,改成new之后每个进程创建新的端口
                "showReuseMessage": true,
                "clear": true
            }
        }
    ]
}

lauch.json

lanch配置了运行的过程,包括描述了需要执行的任务。对应C++开发就是运行与调试。

需要关注的项有:

  1. "miDebuggerPath"项,指定gdb,这里的路径需修改为自己本机的gdb路径。
  2. "preLaunchTask"项,指定运行前要执行的任务,填写task.json文件里面的任务名(label项)。

以下是一个完整的lauch.json,可直接复制使用。

//lauch.json
{
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",     // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg",           // 配置类型,这里只能为cppdbg
            "request": "launch",        // 请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe",   // 将要进行调试的程序的路径.${workspaceRoot}/${fileBasenameNoExtension}.exe
            "args": [],                 // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false,       // 设为true时程序将暂停在程序入口处,一般设置为false
            "cwd": "${workspaceRoot}",  // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
            "environment": [],
            "externalConsole": true,    // 调试时是否显示控制台窗口,一般设置为true显示控制台
            "MIMode": "gdb",
            "miDebuggerPath": "F:\\minGW\\v7.2.0\\mingw64\\bin\\gdb.exe",   // miDebugger的路径,注意这里要与MinGw的路径对应
            "preLaunchTask": "my_g++",     // 调试会话开始前执行的任务,一般为编译程序。值是task.json里面label项定义的值。
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

c_cpp_properties.json

这个json配置了关于C++的参数。

需要关注的项有:

  1. "compilerPath"项,这个是指定编译器路径。可能你会说,前面不是已经在task中指定了命令g++了吗。这里的这项是为intelligence智能提示服务的,如果这项不设置,靠前面两个json配置是可以编译运行的。但是在代码输入界面是不能解析相关C++符号的,比如`#include<iostream>`,就会有虚线,提示找不到文件iostream。
  2. "includePath"项,头文件包含目录。

以下是一个完整的c_cpp_properties.json,可直接复制使用。

//c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "F:\\minGW\\v7.2.0\\mingw64\\bin\\gcc.exe",
            "cStandard": "gnu11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

de6080ccb3be10bc825cb81e726e5c67.png

❤️欢迎关注+点赞+收藏+评论+转发❤️,原创不易,鼓励笔者创作更好的文章~

相关阅读:

一尾66:画个球啊(上)——纯C语言绘制圆球 一尾66:《程序员的自我修养》——全书思维导图(上) 最让程序员自豪的事情是什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值