• 【VSCode】Windows 下搭建 C++ 环境


    Part.I 预备知识

    在这里插入图片描述

    • MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境。MinGW 收集了一系列免费的Windows 使用的头文件和库文件;同时整合了GNU (http://www.gnu.org/)的工具集,特别是GNU 程序开发工具,如经典gcc, g++, make等。MinGW是完全免费的自由软件,它在Windows平台上模拟了Linux下GCC的开发环境,为C++的跨平台开发提供了良好基础支持,为了在Windows下工作的程序员熟悉Linux下的C++工程组织提供了条件。
    • 安装MinGW 需要注意的几点:① 建议选择Current版本,Previous表示以前的版本;Candidate表示当前正在开发的版本,可能正在测试中,还不是非常稳定。② 安装路径请选择一个容易找到的地方,默认的C:/Enviroments/MinGW 是不错的选择(ps: 默认是C:/MinGW,但是有当需要好多环境时不如选择前者)。
    • MinGW Installation Manager 中,复选框为『绿色』表示已经安装的项目,『白色』表示还未安装的项目。如果要卸载已安装的项目,右键→Mark for removal;如果要安装未安装的项目,右键→Mark for Installation。接着点击菜单栏InstallationApply Changes即可。
    • MSYS2 (Minimal SYStem 2) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境。同时它也是一个在Cygwin (POSIX 兼容性层) 和 MinGW-w64(从”MinGW-生成”)基础上产生的,追求更好的互操作性的 Windows 软件。 MSYS2 是MSYS的一个升级版,准确的说是集成了pacman和Mingw-w64的Cygwin升级版, 提供了bash shell等linux环境、版本控制软件(git/hg)和MinGW-w64 工具链。与MSYS最大的区别是移植了 Arch Linux的软件包管理系统 Pacman(总之就是很NB就对了)。

    Part.II 搭建过程

    https://blog.csdn.net/qq_40477151/article/details/103917156
    详细的过程可以参看这个,下面简要记录一下整个过程。
    补于 2022-12-26,用的时候发现没法看STL容器的值,有点不爽,根据前辈经验,发现是MinGW版本太低的原因,建议下更高版本的MinGW,下载教程如第三部分所示。


    • 安装MinGW: https://sourceforge.net/projects/mingw/files/latest/download
    • MinGW Installation Manager 中安装gdb, gcc, g++
    • 设置环境变量:右键『我的电脑』→属性→高级系统设置→环境变量→系统变量→新建MinGW,并将其值赋成C:\MinGW(你装在哪里就赋成啥)
    • 设置Path:在系统变量Path中添加路径%MinGW%\bin,之后点确定
    • 检查是否安装好:在powershell中输入gcc -v看看能否找到指令

    然后下载一个c/c++插件,在工程目录下新建含有三个名为launch.json, tasks.json, c_cpp_properties.json文件的文件夹.vscode。这三个文件中

    • launch.json可以实现设断点调试,选择调试器与需要调试的文件进行调试。
    • tasks.json可以实现自动编译,这个只能执行最简单的编译指令。
    • c_cpp_properties.jsonccpp选项。并不太需要去动它,如果出现明明在系统环境中的头文件找不到的情况,那就很可能是这里出问题了,在includePath里加上即可。

    三个文件的内容如下(可根据自己的需求更改,这是笔者的配置):
    launch.json文件内容:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示  
                "type": "cppdbg",       // 配置类型,这里只能为cppdbg  
                "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)  
                "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径  
                "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可  
                "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false  
                "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录  
                "environment": [],
                "externalConsole": true,     // 调试时是否显示控制台窗口,一般设置为true显示控制台  
                "MIMode": "gdb",
                "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应  
                "preLaunchTask": "g++",     // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ]
            }
        ]
    }
    
    • 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

    tasks.json文件内容:

    {
        // See https://go.microsoft.com/fwlink/?LinkId=733558 
        // for the documentation about the tasks.json format
        "version": "2.0.0",
        "tasks": [
            {
                "type": "shell",
                "label": "g++", //这里注意一下,见下文
                "command": "C:\\MinGW\\bin\\g++.exe",
                "args": [
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}\\${fileBasenameNoExtension}.exe",
                    //"-ggdb3", // 生成和调试有关的信息
                    //"-Wall", // 开启额外警告
                    "-static-libgcc", // 静态链接
                    "-std=c++17", // 使用c++17标准
                    "-finput-charset=UTF-8",    //输入编译器文本编码 默认为UTF-8
                    "-fexec-charset=GB18030",   //输出exe文件的编码
                    "-D _USE_MATH_DEFINES"
                ],
                "options": {
                    "cwd": "C:\\MinGW\\bin"
                },
                "problemMatcher": [
                    "$gcc"
                ],
                "presentation": {
                    "echo": true,
                    "reveal": "never", // 在“终端”中显示编译信息的策略,可以为always,silent,never
                    "focus": false,
                    "panel": "shared" // 不同的文件的编译信息共享一个终端面板
                },
            }
        ]
    }
    
    • 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
    • 36
    • 37

    c_cpp_properties.json文件内容:

    {
        "configurations": [
            {
                "name": "MinGW64",
                "intelliSenseMode": "gcc-x64",
                "compilerPath": "C:\\MinGW\\bin\\g++.exe",
                "includePath": [
                    "${workspaceFolder}",
                    "C:\\gwork\\third-party\\Eigen" 	//Eigen库包含路径
                ],
                "cppStandard": "c++17"
            }
        ],
        "version": 4
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    Part.III 安装较高版本的MinGW

    官网教程:https://code.visualstudio.com/docs/cpp/config-mingw
    因为调试 C++ 看不到vector的值,在网上搜了一下发现是 gdb 的版本太低(8.1以上就行,之前下的是7.6.1),所以才有了这些折腾。

    步骤如下:

    1、下载msys2

    在这里插入图片描述
    2、安装,将其放到一个合适的路径,比如笔者放在了A:\Programs\msys64
    3、运行MSYS2,一次输入如下指令

    pacman -Syu
    pacman -Su
    pacman -S --needed base-devel mingw-w64-x86_64-toolchain
    
    • 1
    • 2
    • 3

    前两个指令一路Y回车,后面的一条指令会让你选要装啥,我就装了红框的两个。

    在这里插入图片描述

    4、设置环境变量:

    • 右键『我的电脑』→属性→高级系统设置→环境变量→系统变量→新建MinGW,并将其值赋成A:\Programs\msys64\mingw64(你装在哪里就赋成啥)
    • 设置Path:在系统变量Path中添加路径%MinGW%\bin,之后点确定
    • 检查是否安装好:在powershell中输入gcc -v看看能否找到指令

    关于 VSCode 显示 Vector 的值,在launch.json中加如下设置:

    "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    然后就可以看到 vector 的值了。

    在这里插入图片描述

    Reference

    1. window 配置C++环境
    2. 用VSCode和CMake编写调试C/C++
  • 相关阅读:
    Spring Boot 配置多数据源
    【机器学习】聚类【Ⅰ】基础知识与距离度量
    Win11网络不稳定怎么办?Win11连接wifi频繁掉线的解决方法
    【博客441】Linux自制内核模块(LKM)
    黑马学Docker(二)
    初始Hadoop
    IP 电话
    yum和vim工具的使用
    快速学习react 从入门到入土
    清易低功耗智能雨量监测站概述
  • 原文地址:https://blog.csdn.net/Gou_Hailong/article/details/127599416