0


【c++环境】Win11系统vscode配置C++环境:Vscode+MinGw+Cmake_vscode

全文目录

1 概述及参考链接

本文为我收集众多教程后,缝合之后的教程,尽量保证主线明确,如有不正确之处请评论帖子,谢谢(磕头)
https://blog.csdn.net/m0_55127902/article/details/135603817
https://blog.csdn.net/Yikefore/article/details/130033638
https://blog.csdn.net/Hudiscount/article/details/120209994

2 安装 MinGW-w64 与 cmake

[!attention]

  • 下载解压 MinGW-w64 与 cmake 后,将对应文件夹转移到 vscode 的文件夹之下,并且将文件夹名称分别命名为 mingw64cmake
  • 并在对应文件夹中通过新建txt 文件名称来标注版本信息
  • 这样能够实现环境变量不用更改的情况下进行相关的版本更新管理
  • 后文教程图片中的文件夹位置为参考教程中的内容,明白意思即可

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

2.1 一、安装 MinGW-w64

2.1.1 下载解压 MinGw-W64

进入 MinGw-w64官网https://www.mingw-w64.org/,点击Download,点击MingW-W64-builds
在这里插入图片描述

找到 Installation: Github,点击跳转到 Github 页面。这里不推荐很多教程使用的 SourceForge 上下载安装,SourceForge 上构建的版本很久,目前仅支持到 8.1.0,而 github 已经支持到了 13.2.0。其次,SourceForge 虽然有较新的 11.0 版本,但下载完成之后是源码,需要自己手动编译。
在这里插入图片描述

跳转到 Github 页面之后,选择适合自己的版本安装,我这里选择 x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev0.7z。这里说明一下文件命名的含义,方便大家选择适合自己的版本。
在这里插入图片描述

  • 文件命名开头为 i686 或 x86_64,代表两种不同的架构,这与电脑使用的 CPU 有关。i686 是 32 位的 Intel x86 架构;x86-64 是 64 位的 Intel x86 架构,实际上由 AMD 发明,也称为 AMD64。目前大部分电脑位 x86_64 架构
  • release 是 Github 版本控制的分支,不需要管
  • 第三个参数是 posix 或 Win32,代表两种不同的线程模型。posix 是一种跨平台的线程模型,程序将使用 POSIX API,允许使用 std:: thread; win32 是 Windows 原生的线程模型,程序将使用 Win32 API,不允许使用 std:: thread。通常选用 posix
  • 第四个参数是 seh 或 dwarf,代表两种不同的异常处理机制。seh 是一种新的异常处理方式,性能较好,但只支持 64 位。dwarf 是一种古老的异常处理方式,稳定性好,但只支持 32 位。
  • 第五个参数为 msvcrt 或 ucrt,代表两种不同的 runtime 库。msvcrt 是 Microsoft 的 C 运行时库。这个库包含了许多基本的 C 语言函数,这个库在任何 Windows 机器上都可以找到。然而,每个 Windows 版本的 msvcrt. dll 可能会有些许不同,而且它是 Microsoft 的专有代码。因此,虽然 msvcrt. dll 在部署时可以大大简化工作,但也可能带来一些问题。ucrt 代表 Microsoft 的 Universal C 运行时库,这个库是 Windows 操作系统的一个组件,包含在 Windows 10 或更高版本,以及 Windows Server 2016 或更高版本中。它可以通过 Windows Update 在仍在扩展支持的旧操作系统上使用。选择使用 UCRT,那么程序将使用 Universal CRT,而不是 MSVCRT,这将使程序更兼容 MSVC 编译的二进制文件,但不兼容 MSVCRT 环境。通常选用 UCRT

最后,建议安装次新版本,最新版可能会有一些未知的 bug。

下载完成后,将压缩包解压至合适的位置 (通常为 D 盘,C 盘空间富裕解压到 C 盘也无所谓,如果盘符较多,解压至 EFG 盘…甚至 Z 盘都可以)。

2.1.2 配置系统环境变量

解压完成后,进入设置,在搜索框搜索“高级系统设置”,点击查看高级系统设置
在这里插入图片描述

之后点击环境变量

在这里插入图片描述

之后找到系统变量下面的 Path,双击进入 Path

在这里插入图片描述

之后点击新建

在这里插入图片描述

返回文件资源管理器,复制解压出来的文件中 bin 文件夹所在的绝对路径,将其粘贴到上一步新建需要填入路径的位置,之后一路点击确定即可。

在这里插入图片描述

使用快捷键 Win+r 打开运行对话框,输入 cmd

在这里插入图片描述

在 cmd 窗口中输入 gcc -V,显示 gcc 版本信息,大功告成。

在这里插入图片描述

2.2 二、安装 cmake

2.2.1 下载 cmake

点击链接https://cmake.org/download/进入Cmake官网下载页面,点击下载适合的版本,我这里下载Windows x64 版本。
在这里插入图片描述

2.2.2 安装 cmake

下载完成后以管理员身份运行安装文件,选择将 Cmake 添加到系统环境变量。

在这里插入图片描述

修改安装路径,建议安装在 C 盘之外。

在这里插入图片描述

最后点击 Install,完成安装。

在这里插入图片描述

使用快捷键 Win+r 打开运行对话框,输入 cmd

在这里插入图片描述

在 cmd 窗口中输入 cmake --version,显示 cmake 版本信息,大功告成。
在这里插入图片描述

3 vscode 中使用 GCC

3.1 配置 c_cpp_properties. json

创建 c_cpp_properties. json 配置文件:

3.1.1 UI 配置(推荐)

按下 CTRL+shift+P, 调出面板,输入 C/C++,选择“编辑配置 UI”

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

(5)在弹出的页面中点击编译器路径,进行修改,填入上述装进电脑里的 Mingw 路径;

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

在下面的 IntelliSense 模式里选择 gcc-x 64

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

此时会发现左边多了一个. vscode 文件夹,并且里面有一个 c_cpp_properties. json 的文件,点开它

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.19041.0",
            "compilerPath": "D:/Downloads/x86_64-8.1.0-release-posix-seh-rt_v6-rev0/mingw64/bin/g++.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

这是我的文件内容,此文件无需修改,可以看到,compilerPath 编译路径是我们刚刚修改的,系统根据我们修改的内容自动生成这个文件。

3.1.2 JSON 配置

“Ctrl+Shift+P”,接着输入“C/C++”,选择“C/C++编辑配置(JSON)”

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": 
            [
                "${workspaceFolder}/**",
                "E:\\MinGW\\lib\\gcc\\mingw32\\5.1.0\\include\\*"  //mingw32中的头文件路径,不设置的话找不到头文件
            ],
            "defines":
            [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.18362.0",
            "compilerPath": "E:\\MinGW\\bin\\gcc.exe", // 这里写你自己的g++的路径
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64",
            "configurationProvider": "vector-of-bool.cmake-tools", // 这个很重要,就是这句话在通过cmake引入第三方库的代码补全
            "browse": 
            {
                "path": [
                    "${workspaceFolder}"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            }
        }
    ],
    "version": 4
}

3.2 配置 tasks. json

这个文件是专门来执行编译任务的

[!tip]
这里有两种方法:

  1. 点击上方菜单栏的“终端”>"配置任务"or“配置生成任务”;
  2. “Ctrl+Shift+P”,输入 task,选择“任务:配置任务”即可。

[!caution]
必须要有程序文件. cpp 才能生成活动文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

选择 gcc. exe 或 g++. exe,一般 C 程序选择 gcc. exe,C++程序选择 g++. exe,不过没关系,二者都可以编译 C 和 C++程序。

在这里插入图片描述

选择完成后会在. vscode 文件夹下生成 task. json 文件,打开该文件,需要修改的内容主要为 gcc/g++. exe 的路径,和参数“-o”后面的路径,参数“-o”后面的路径为编译完成后可执行文件生成的路径,根据自己的需求配置。

在这里插入图片描述

我这里将编译器配置为 g++,生成可执行文件的路径配置为 build 目录之下,之后点击终端,运行生成任务,即可在指定目录下生成可执行文件。

在这里插入图片描述

修改后的 task. json 文件和生成的可执行文件如下图所示。

在这里插入图片描述

在终端运行可执行文件,输出 hello,world!

在这里插入图片描述

或者:

{
// 这里配置了三个Task
    "tasks": [
    // Task 1:生成build文件夹
        {
            "type": "shell", // 这里决定了task的类型,shell类型就是在命令行里运行command的命令,还有一种类型是“process”,这里就不介绍了
            "label": "mk_build", // task的名字
            "command": "mkdir", // 需要被运行的命令
            "args": ["build"], // 传递给command的参数
            "options": {
                "cwd": "${workspaceFolder}",
            },
        },
        // Task 2:运行cmake
        {
            "type": "shell",
            "label": "cmake",
            "command": "cmake",
            "args": [
                "-G",
                "MinGW Makefiles", // 这里必须定义生成器,否则默认cmake生成的是VS Studio可编译的工程
                "${workspaceFolder}"
            ],
            "options": {
                "cwd": "${workspaceFolder}/build", // 工作路径,就是说cmake的输出都会放在${workspaceFolder}/build文件夹下
            },
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        // Task 3:运行make
        {
            "type": "shell",
            "label": "build",
            "command": "mingw32-make",
            "args": ["-j4"],
            "options": {
                "cwd": "${workspaceFolder}/build",
            },
            "problemMatcher": [],
            "group": {
                "kind": "build", // 这里说明这个任务时输入"build"类型的,也就是说明,这是一个生成任务
                "isDefault": true
            },
            "dependsOn": [
                "cmake" // 这里设置,说明了这个任务一定要在Task “cmake”执行之后方可执行
            ]
        }     
    ],
    "version": "2.0.0"
}

3.3 配置 launch. json

调试代码文件

3.3.1 方法一

[!tip]

  1. 点击上方菜单栏的“运行”>“打开配置”;
  2. “Ctrl+Shift+P”,输入 debug,选择“调试:打开 launch. json”即可。
{
    "version": "2.0.0",
    "configurations": [

    // Debug 1,这里也可以配置多个Debug任务,这其实和tasks.json很类似
        {
            "name": "Win32", // Debug任务名
            "type": "cppdbg", // 类型
            "request": "launch",
            "program": "${workspaceFolder}/build/Main.exe", // 需要调试的应用程序,这是需要按照你的需要进行调整的
            "args": [], // 传递参数给应用程序
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}", // 当前工作路径
            "environment": [{"name": "PATH","value": "${PATH};D:/software/opencv/build-gcc/bin;D:/software/aruco/bin"}], // 这里需要特别注意,这里要把应用程序运行需要的动态链接库的路径,放进来,这里也需要你根据自己需要进行调整,我在这里给出一个示范
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "E:/MinGW/bin/gdb32.exe", // 这里需要填写你自己的gdb.exe的路径
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

3.3.2 方法二

回到 hello. cpp 文件内容下,点击运行,启动调试,选择 C++(GDB/LLDB),再选择添加默认配置,或者选择 g++. exe, 都会出现 launch. json 文件。 //八成产生不了

到要产生 launch. json 的时候,先回到 cpp 下,点左边的 debug 小虫子按钮,点击要自定义运行和调试创建 launch. 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": "D:/Downloads/x86_64-8.1.0-release-posix-seh-rt_v6-rev0/mingw64/bin",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "D:/Downloads/x86_64-8.1.0-release-posix-seh-rt_v6-rev0/mingw64/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe 生成活动文件"
        }
    ]
}

若使用默认配置,一定要和我的 launch. json 文件进行比对,该修改的要进行修改。

  1. 注意修改"externalConsole": true,
  2. 注意看 launch. json 中的各个路径的起始,路径中的"/“,”"也要注意。
  3. ctrl+s 保存 launch. json

3.3.3 方法三

首先点击调试,创建 launch. json 文件:

然后选择 C++(GDB/LLDB)。

在这里插入图片描述

这时在我们的文件目录下面就生成了一个 launch. json 文件

在这里插入图片描述

然后点击添加配置:选择 C/C++(gdb)启动

在这里插入图片描述

这是生成的默认的配置信息,当然我们也许需要进行改造一下:

默认信息:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "输入程序名称,例如 ${workspaceFolder}/a.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/path/to/gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }

    ]
}

在这里我们需要改两个地方:

在这里插入图片描述

如果你的 mingw 64 也是和我一样的路径:D:\mingw 64\bin\gdb. exe

修改完之后得到了新的配置信息:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}\\${workspaceRootFolderName}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "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
                }
            ]
        }

    ]
}
3.3.4 开始调试

当 launch. json 文件生成后,我们只要打断点开始调试就行。

调试的快捷键和 VS 系列的 IDE 是一样的,如:
F 9- 打断点/取消断点
F 5-启动调试
F 11-逐语句调试
F 10-逐过程调试
启动调试后,也是可以使用监视窗口查看变量等程序执行过程中的信息。

在这里插入图片描述

4 vscode 中配置 Cmake

首先,在 vscode 中安装 Cmake 插件

在这里插入图片描述

安装完成后,使用快捷键 Ctrl+Shift+P 或者直接在上方搜索框输入“Cmake:p”,选择快速入门,根据指引构建 Cmake 项目

在这里插入图片描述

输入项目名称,任意都行
在这里插入图片描述

选择创建 C++项目

在这里插入图片描述

选择创建可执行文件

在这里插入图片描述

选择完成后,即生成了完整的 cmake 项目。打开 CMakeLists. txt,修改一些配置。

  • 最小版本选择的过低会提示不再兼容的警告,只需在后面跟上最大版本号即可,注意自己电脑上本机的 cmake 版本号要包含在最小版本号到最大版本号之间
  • add_execuable 中,要将 main. cpp 改成自己 cpp 文件的名称

在这里插入图片描述

配置完成后在终端逐步输入以下命令,编译文件并生成可执行文件。这里需要注意的是,在 Unix 系统下,原生 GCC 编译器支持 make 命令,而在 Windows 下,Mingw-w64 使用的是 mingw32-make 命令,习惯的 Unix 系统开发的小伙伴可能在这里频繁适应 make 命令构建,不断报错怀疑人生。出了使用 mingw32-make 命令替代之外,还可以在 Mingw-w64/bin 目录下找到 wingw32-make. exe,复制文件,粘贴在 bin 目录下,改名为 make. exe,此时就可以愉快的使用 make 命令了。

在这里插入图片描述

还有一种更简洁的方式,在 vscode 中,直接点击左下角的生成,即可生成可执行文件。
在这里插入图片描述

标签: vscode c++ ide

本文转载自: https://blog.csdn.net/weixin_45886869/article/details/139968902
版权归原作者 池鴻 所有, 如有侵权,请联系我们删除。

“【c++环境】Win11系统vscode配置C++环境:Vscode+MinGw+Cmake_vscode”的评论:

还没有评论