【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<iostream>
using namespace std;
int main()
{
    
    
    cout << "hello world" << endl;
    return 0;
}

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

在这里插入图片描述
选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. 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. 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?

猜你喜欢

转载自blog.csdn.net/qq_38253797/article/details/127873693
今日推荐