zl程序教程

您现在的位置是:首页 >  后端

当前栏目

vscode配置C++

2023-09-14 09:06:47 时间

假设你装完了g++,并且添加到了环境变量
打开vscode
装一下C/C++,C++ intellisense,Code Runner
在这里插入图片描述
先打开一个目录,然后新建一个cpp
在插件里,搜索coderunner,点那个设置
在这里插入图片描述
把run in terminal勾上
在这里插入图片描述
ctrl+shift+p,输入configur
点C/C++:Edit Configurations (UI)
在这里插入图片描述
选择gcc
在这里插入图片描述
点左边的debug按钮,然后点create a launch.json file(如果你以前配置过,那应该是点击上面的齿轮,进入launch.json
在这里插入图片描述
选第一个
在这里插入图片描述

在这里插入图片描述修改中间的configurations
重点检查program

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

回到那个cpp文件,再次ctrl+shift+p,输入task
选择configure default build task
在这里插入图片描述
选g++
在这里插入图片描述

label是最后你编译的标签,可以自己写
然后command,看你是gcc还是g++
那些参数你可以自己看着改(我相信你应该会编译g++)
因为打oj,所以我的std是98的,你要是leetcode,你也可以搞个17或者20(虽然我觉得你也只会用11的特性)

可以看的出来,我配置了98和11,两个

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build98",
            "type": "shell",
            "command": "g++",
            "args": [
                "${file}",   // 指定编译源代码文件
                "-o",
                "${workspaceFolder}/${fileBasenameNoExtension}.out", // 指定输出文件名,不加该参数则默认输出a.exe
                "-O0",      // 优化级别
                "-ggdb3",   // 生成和调试有关的信息
                "-Wall",    // 开启额外警告
                "-static-libgcc",   // 静态链接
                "-std=c++98",       // 使用c++98标准
                "-finput-charset=UTF-8",    //输入编译器文本编码 默认为UTF-8
                "-fexec-charset=GB18030",   //输出exe文件的编码
                "-D _USE_MATH_DEFINES"
            ],
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": [
                    "absolute",
                ],
                "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", // 在“终端”中显示编译信息的策略,可以为always,silent,never
                 "focus": false,
                 "panel": "shared" // 不同的文件的编译信息共享一个终端面板
            },
        },
        {
            "label": "build11",
            "type": "shell",
            "command": "g++",
            "args": [
                "${file}",   // 指定编译源代码文件
                "-o",
                "${workspaceFolder}/${fileBasenameNoExtension}.out", // 指定输出文件名,不加该参数则默认输出a.exe
                "-O0",      // 优化级别
                "-ggdb3",   // 生成和调试有关的信息
                "-Wall",    // 开启额外警告
                "-static-libgcc",   // 静态链接
                "-std=c++11",       // 使用c++11标准
                "-finput-charset=UTF-8",    //输入编译器文本编码 默认为UTF-8
                "-fexec-charset=GB18030",   //输出exe文件的编码
                "-D _USE_MATH_DEFINES"
            ],
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": [
                    "absolute",
                ],
                "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", // 在“终端”中显示编译信息的策略,可以为always,silent,never
                 "focus": false,
                 "panel": "shared" // 不同的文件的编译信息共享一个终端面板
            },
        }
    ]
}

随便写个代码
然后ctrl+shift+b
可看得出来,由可以看到你配置的label的名称,然后你就选你要的
在这里插入图片描述效果大概,可看到左边由一个红点,那个是debug用的断点
在这里插入图片描述然后按f5运行
在这里插入图片描述
顺带一提,你可以改改命令用makefile(摸了,回头再说