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

27 篇文章 4 订阅
8 篇文章 1 订阅

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
                }
            ]
        }
    ]
}

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" // 不同的文件的编译信息共享一个终端面板
            },
        }
    ]
}

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
 }

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

前两个指令一路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
                }
            ]

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

在这里插入图片描述

Reference

  1. window 配置C++环境
  2. 用VSCode和CMake编写调试C/C++
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪猪头拯救地球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值