• VSCode 配置 C++ 环境


    1.1 MinGW 编译套件

    MinGW 提供了一套简单方便的 Windows 下的基于 GCC 程序开发环境,并且 收集了一系列免费的 Windows 使用的头文件和库文件。它整合了 GNU 的工具集,特别是 GNU 程序开发工具,如经典 gcc, g++, make 等。
    MinGW 是完全免费的自由软件,它在 Windows 平台上模拟了 Linux 下 GCC 的开发环境,为 C++ 的跨平台开发提供了良好基础支持,为了在 Windows 下工作的程序员熟悉 Linux 下的 C++ 工程组织提供了条件。

    MinGW 官方下载地址: https://osdn.net/projects/mingw/
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    照着上面的步骤安装即可,
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    配置环境变量,用户级优先级高于系统级。照这种方法安装,容易出现vscode编译代码的时候出现错误。下面介绍第二种:直接下载编译好的二进制文件,替换到之前的安装路径下即可

    下载网址 https://sourceforge.net/projects/mingw-w64/files/
    在这里插入图片描述
    选择对应的版本即可
    解压缩后的文件
    在这里插入图片描述
    将上述的文件全部替换到上一步的下载文件中即可,或者直接进行这一步,放在路径中并配置环境变量

    1.2 CMake

    CMake是一个跨平台的项目构建工具,它可以用简单的语句来描述所有平台的编译过程并输出各种各样的makefile或者project文件(如 Linux 的 Makefile 或 Windows Visual C++ 的 projects/workspaces)。最后调用编译器按照构建文件规则编译整个项目。。
    下载网址:https://cmake.org/download/
    在这里插入图片描述
    根据自己本地操作系统选择对应的版本,将绿色版 CMake 下载到本地,并解压缩到自己认为合适的目录中即可。
    设置环境变量,跟上述环境变量配置一样
    依次右击计算机(此电脑) -> 属性 -> 高级系统设置 -> 环境变量,

    vscode 插件安装
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    单文件编译和调试

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.1 基于命令编译项目

    # C++程序编译
    $ g++ src/insert.cpp src/select.cpp test.cpp -o sort -I ./include
    # 编译 src 目录下所有的 .cpp 文件
    $ g++ src/*.cpp test.cpp -o sort -I ./include
    
    • 1
    • 2
    • 3
    • 4

    4.2 基于 CMake 编译

    project(SortMake)
    aux_source_directory(src SRC_SUB)
    aux_source_directory(. SRC_CUR)
    add_executable(sort ${SRC_SUB} ${SRC_CUR})
    include_directories(include)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    project() :设置项目名称,参数可以随意指定
    aux_source_directory(dir VAR): 搜索 dir 目录下所有的源文件,并将结果列表存储在变量 VAR 中
    add_executable(target src): 指定使用源文件 src,生成可执行程序 target , ${变量名} 是取变量的值
    include_directories(headDir): 设置包含的头文件目录
    在 vscode 中先配置 cmake, 按快捷键 ctrl+shift+p,在窗口中搜索 CMake configure,选中这个配置项
    
    • 1
    • 2
    • 3
    • 4
    • 5

    如果 vscode 加载不到编译器,会弹出如下窗口,需要选择 MinGW 套件中的 GCC 编译器,不要选 VS 里边的编译器。

    5. 多文件调试

    5.1 生成调试配置文件

    第一步:先将 launch.json 文件创建出来(一定要先切换到显示项目源文件的那个 Tab 页,不然 tasks.json创建不出来)。
    第二步:在窗口顶部弹出的窗口中选择 C++(GDB/LLDB)
    launch.json

    {
        // 使用 IntelliSense 了解相关属性。 
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "g++.exe - 生成和调试活动文件",
                "type": "cppdbg",
                "request": "launch",
                "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "args": [],
                "stopAtEntry": false,
                "cwd": "C:\\Qt\\Qt5.9.3\\Tools\\mingw530_32\\bin",
                "environment": [],
                "console": "externalTerminal",
                "MIMode": "gdb",
                "miDebuggerPath": "C:\\Qt\\Qt5.9.3\\Tools\\mingw530_32\\bin\\gdb.exe",
                "setupCommands": [
                    {
                        "description": "为 gdb 启用整齐打印",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ],
                "preLaunchTask": "C/C++: g++.exe 生成活动文件"
            }
        ]
    }
    
    
    • 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

    这个配置文件中需要修改的项不太多,介绍一下需要修改的配置项:

    program: 要调试的可执行程序的路径,里边可以使用一些宏,宏的外部加 ${} 表示取值
    ${fileDirname}:文件目录的名字,launch.json 对应的目录名就是 .vscode
    ${fileBasenameNoExtension}:不带扩展名的文件名,文件名是 main 函数对应的那个文件
    ${workspaceFolder}:工作区目录
    preLaunchTask:调试项目前要执行的任务,C/C++: g++.exe 生成活动文件是 tasks.json 中的一个任务
    通过执行这个任务生成了 program 对应的可执行文件
    tasks.json

    {
        "version": "2.0.0",
        "options": {
            "cwd": "${workspaceFolder}/build/"
        },
    
        "tasks": [
            {
                "label": "cmake",
                "type": "shell",
                "command": "cmake",
                "args": [
                    ".."
                ]
            },
            {
                "label": "make",
                "group":{
                    "kind":"build",
                    "isDefault":true
                },
                "command": "mingw32-make.exe",
                "args":[
                ]
            },
            {
                "label":"Build my project",
                "dependsOn":[
                    "cmake",
                    "make"                
                ]
            }
        ]
    }
    
    • 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
  • 相关阅读:
    MySQL-多版本并发控制
    React-路由小知识
    【手搓模型】亲手实现 Vision Transformer
    基于卷积神经网络VGG实现水果分类识别
    AWTK 支持可独立安装的小应用程序 (applet)
    什么是芯片的启动电压与欠压锁定?电源芯片测试如何助力?
    docker 网络简介
    【答辩问题】计算机专业本科毕业设计答辩技巧
    java游戏制作-拼图游戏
    QEMU TCG研究
  • 原文地址:https://blog.csdn.net/neuzhangno/article/details/126444179