Visual Studio 2022配置MinGW编译调试C++教程

季宁
季宁
发布时间:2026-10-15| 3人浏览过
原创

Visual Studio 2022原生支持CMake项目,默认采用MSVC工具链。对于习惯MinGW环境的开发者,可通过配置CMake预设文件或项目设置编辑器,将编译器切换为gcc/g++,并绑定GDB进行调试,从而在VS IDE中完成C++程序的构建与调试。

创建CMake项目

首先启动Visual Studio 2022,点击“创建新项目”。在模板选择界面中,搜索并选择“CMake项目”,随后点击“下一步”。

进入项目配置页面,输入项目名称(例如test)及保存路径,确认无误后点击“创建”按钮。

项目创建完成后,若环境中未安装Windows平台的C++开发工具包,VS将无法找到默认编译器并报错,提示缺少Microsoft C++编译器。

配置CMake编译器

在VS2022中,CMake配置依赖两个核心文件:CMakePresets.json(预设文件)和CMakeSettings.json(项目级设置)。VS通过“工具”→“选项”→“CMake”→“常规”中的设置来决定优先读取哪个文件:若存在CMakePresets.json则优先使用它;否则使用CMakeSettings.json。以下提供两种配置方式,任选其一即可。

方法一:修改CMakePresets.json预设

新建项目时默认生成CMakePresets.json。打开该文件,默认编译器配置指向Visual Studio的cl.exe。

为确保编译器正确识别,需执行两步修改:

1. 指定编译器路径:在cacheVariables中将编译器命令改为gcc.exe和g++.exe。前提是你的MinGW bin目录已加入系统PATH环境变量,以便VS能找到可执行文件。

"vendor": {
          "microsoft.com/VisualStudioSettings/CMake/1.0": {
            "intelliSenseMode": "linux-gcc-x86"
          }
        }

此时可以正常编译,但智能感知可能异常。需在cacheVariables后追加vendor字段以设置智能感知模式:

"cacheVariables": {
          "CMAKE_C_COMPILER": "gcc.exe",
          "CMAKE_CXX_COMPILER": "g++.exe"
        },
        "vendor": {
          "microsoft.com/VisualStudioSettings/CMake/1.0": {
            "intelliSenseMode": "linux-gcc-x86"
          }
        },

注意:若目标平台为64位,请将intelliSenseMode的值修改为linux-gcc-x64。

方法二:使用CMake设置编辑器(推荐)

此方式更直观且不易出错。若项目已有CMakePresets.json,请先将其删除,或在VS选项中设置CMake为“从不使用CMakePresets.json”。

在解决方案资源管理器中,右键点击项目名称,选择“编辑CMake设置”。这将自动生成或打开CMakeSettings.json文件。

打开JSON编辑器,首先删除inheritEnvironments相关行,以防止继承冲突的环境变量。接着在根对象中添加variables数组来定义编译器,并设置intelliSenseMode:

"variables": [
        {
          "name": "CMAKE_C_COMPILER",
          "value": "gcc",
          "type": "FILEPATH"
        },
        {
          "name": "CMAKE_CXX_COMPILER",
          "value": "g++",
          "type": "FILEPATH"
        }
      ],
      "intelliSenseMode": "linux-gcc-x64"

若未定义env.BIN_ROOT变量导致找不到gcc,可直接使用文件名gcc和g++(要求其在PATH中),这比绝对路径更具便携性。

配置完成后,VS会自动识别MinGW工具集。下方的CMake变量视图应显示已重新定义的编译器路径。

强烈建议使用此图形化编辑器方式,它能自动处理intelliSenseMode配置,减少手动编辑JSON的错误风险。

配置GDB调试

上述步骤仅解决了编译问题,要使用F5键调试,还需配置调试器。

在“解决方案资源管理器”中右键点击CMakeLists.txt,选择“添加调试配置”。

在弹出的对话框中,选择“MinGW/Cygwin (gdb)的C/C++启动”。

系统将在项目根目录生成launch.vs.json文件。

编辑launch.vs.json进行以下关键配置:

  1. projectTarget:设置为生成的可执行文件名称,如test.exe。
  2. miDebuggerPath:设置为gdb.exe,确保gdb在PATH中。
  3. setupCommands:启用GDB整齐打印并设置反汇编风格为Intel格式(可选)。
{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "cppdbg",
      "name": "CMakeLists.txt",
      "project": "CMakeLists.txt",
      "projectTarget": "test.exe",
      "cwd": "${workspaceRoot}",
      "program": "${debugInfo.target}",
      "MIMode": "gdb",
      "miDebuggerPath": "gdb.exe",
      "externalConsole": true,
      "setupCommands": [
        {
          "description": "为 gdb 启用整齐打印",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        },
        {
          "description": "将反汇编风格设置为 Intel",
          "text": "-gdb-set disassembly-flavor intel",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

最后,确保顶部工具栏的调试配置下拉菜单中选中了对应的启动项(通常名为CMakeLists.txt)。

按下F5键,即可启动MinGW GDB调试器对C++程序进行断点、单步等调试操作。

以上就是Visual Studio 2022配置MinGW编译调试C++程序的详细内容,更多关于VS2022 C++开发配置的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。