• 【Wins+VSCode】配置C++开发环境


    1、安装vscode

    官网下载就可以了,免费的: https://code.visualstudio.com/

    2、安装中文包和c++扩展包

    直接在左侧找到扩展按键,安装c++扩展包:
    在这里插入图片描述

    3、安装c++编译工具:g++

    直接安装 https://sourceforge.net/projects/mingw-w64/files/

    再把安装好的mingw加入系统环境变量:
    在这里插入图片描述
    验证是否安装成功:
    在这里插入图片描述

    4、运行代码测试

    新建测试文件:

    #include
    using namespace std;
    int main()
    {
        cout << "hello world" << endl;
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    点击以调试/非调试模式运行:

    在这里插入图片描述
    选GDB:
    在这里插入图片描述
    选g++:
    在这里插入图片描述

    这个时候就可以正常运行显示结果了,程序可以正常执行,调试、运行都可以。
    在这里插入图片描述
    但是细心的同学可以发现,在左侧文件此时多了两个文件:lauch.json、tasks.json。这是两个非常重要的文件,是整个开发的重点配置,需要好好了解清楚他们是干嘛的。

    5、lauch.json

    功能:用于添加gdb调试任务,运行可执行文件。

    初始化生成:

    {
        // 使用 IntelliSense 了解相关属性。 
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "g++.exe - 生成和调试活动文件",
                "type": "cppdbg",
                "request": "launch",
                "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",  // 调用的exe名,要与tasks生成的exe名一致
                "args": [],
                "stopAtEntry": false,
                "cwd": "${fileDirname}",
                "environment": [],
                "externalConsole": false,  // // 决定输出是单独外部黑窗口显示,还是在IDE里终端黑窗口显示
                "MIMode": "gdb",
                "miDebuggerPath": "D:\\mingw64\\bin\\gdb.exe",
                "setupCommands": [
                    {
                        "description": "为 gdb 启用整齐打印",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    },
                    {
                        "description": "将反汇编风格设置为 Intel",
                        "text": "-gdb-set disassembly-flavor intel",
                        "ignoreFailures": true
                    }
                ], 
                "preLaunchTask": "C/C++: g++.exe 生成活动文件"   
                // 此项命名需要与tasks.json中的label项命名一致,作用是每次调用launch时会先调用tasks.json,从而不用自己每次都ctrl+shift+b手动生成最新任务后,才能调用launch
            }
        ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    【参数】

    1. program:为要调试程序的路径;
    2. args:运行时添加的参数;
    3. stopAtEntry:默认False,True则会在函数入口中赞停;
    4. externalConsole:是否在外部控制外运行,设置为true会弹出windows的运行窗口;
      5. miDebuggerPath:本机的gbd调试器的路径;
    5. setupCommands:启动调试前为GDB调试器设置相应的命令;
      7. preLaunchTask:运行调试前执行的任务填写task.json文件里面的任务名(label项);

    6、tasks.json

    功能:相当于gcc编译步骤汇总,也可以调用makefile,最终生成可执行文件。

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

    初始化生成:

    {
        "tasks": [
            {
                "type": "cppbuild",
                "label": "C/C++: g++.exe 生成活动文件",  // 需与lauch.json中"preLaunchTask"项命名一致
                "command": "D:\\mingw64\\bin\\g++.exe",
                "args": [
                    "-fdiagnostics-color=always",
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}\\${fileBasenameNoExtension}.exe"  // 输出exe名,要与launch中调用的program项命名一致
                ],
                "options": {
                    "cwd": "${fileDirname}"
                },
                "problemMatcher": [
                    "$gcc"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "detail": "调试器生成的任务。"
            }
        ],
        "version": "2.0.0"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    【参数配置】

    1. label:此任务的名称,会被lanch.json中的preLaunchTask所使用;
    2. command:执行的命令,如果时C++开发,就是g++gcc这些构建命令,这里一半写系统的环境变量中的g++地址;
    3. args:执行命令时的输入参数,g++一般就采用默认的;

    7、问题

    关注上面的加黑的几个参数,配置好了一般不会有什么问题。

    7.1、找不到gcc任务

    tasks.json里的label名字和launch.json中的preLaunchTask名字没对应上,导致编译后launch不到对应exe。

    分析:tasks.json是编译,launch.json是运行exe,tasks.json在lanuch之前。tasks里的label一定要跟launch.json中的preLaunchTask名字对应一致。否则会报找不到gcc任务错误。

    Reference

    b站: 【教程】VScode中配置C语言/C++运行环境

    知乎: vscode如何在最新版本中配置c/c++语言环境中的launch.json和tasks.json?

  • 相关阅读:
    pandas dataframe 数据格式转化 基础
    git 开发 分支 同步
    Xilinx 千兆以太网TEMAC IP核简介
    中级软件设计师考试(软考中级)网络与信息安全基础
    tcpdump 详细使用指南(请尽情食用)
    Simulating Unknown Target Models for Query-Efficient Black-box Attacks
    常见的配置文件格式:yaml,json,xml,ini,csv等
    【算法】排序——选择排序和交换排序(快速排序)
    idea快速搭建struts2框架
    TikTok:年轻一代的创新驱动力与社会影响
  • 原文地址:https://blog.csdn.net/qq_38253797/article/details/127873693