Visual Studio 2022使用MinGW来编译调试C/C++程序的图文教程

目录
  • 一、创建项目
  • 二、配置CMake
  • 三、配置调试

Visual Studio的新版本已经可以像VSCode一样创建CMake项目了,但是默认的情况下是使用的Visual Studio编译器及调试器不包括MinGW中的工具集,参见下面的默认可选工具集:

本文就以实例来简单介绍一下VS2022中如何使用MinGW来编译、调试C/C++程序。

一、创建项目

首先,创建一个新项目:

然后,选择CMake项目:

填写项目名称,比如test

项目创建好后如下所示,由于笔者并未安装VS的Windows C/C++开发工具,也就没有VS的C/C++编译、调试器,所以会报错。

二、配置CMake

在VS2022中CMake的配置有两个文件,一个是“CMakePresets.json”,另一个是“CMakeSettings.json”,在VS的“工具”/“选项”/“CMake”/“常规”中可以进行设置使用哪个文件来进行CMake配置,如下图所示:

默认是如果有“CMakePresets.json”则使用“CMakePresets.json”,否则使用“CMakeSettings.json”。
下面就分别介绍如何使用这两个文件来配置CMake,二选一即可。

1.修改“CMakePresets.json”预设编译工具集

新建项目后,默认是生成了“CMakePresets.json”,打开“CMakePresets.json”,可以看到默认的编译是cl.exe

为了使用MinGW中编译器,将之改为gcc.exe和g++.exe(必须在PATH路径中可以找到),如下图所示:

此时即可正常编译了:

但是此时的智能感知识别并未正常工作,无法跳转到定义,此时需要设置智能感知模式(intelliSenseMode),打开“CMakePresets.json”,在cacheVariables后添加:

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

即:

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

如果是64位程序,则将"linux-gcc-x86"改为"linux-gcc-x64"。

2.使用CMake设置编辑器来配置CMake

新建的项目,默认是生成的“CMakePresets.json”预设文件,先将之删除掉或者在VS选项中设置CMake为“从不使用CMakePresets.json”,然后在项目中选择“test的CMake设置”,此时项目中会创建一个CMakeSettings.json的文件

双击即可打开CMake的设置编辑器,如下图所示:

此时工具集中是默认可用的工具集,可以看到并没有MinGW。点击右边的“编辑JSON”,即可看到JSON格式的配置文件:

删除"inheritEnvironments"所在行,并添加:

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

或者直接在配置中选中“x64-Debug"删除掉

然后再添加MinGW配置

此时工具集中可以看到MinGW了:

在下面的CMake变量中可以看到重新定义了CMAKE_C_COMPILER和CMAKE_CXX_COMPILER变量:

如果没有定义env.BIN_ROOT变量则会找不到gcc和g++,可以直接使用PATH变量,所以把CMAKE_C_COMPILER改为gcc,CMAKE_CXX_COMPILER改为g++即可:

强烈推荐使用此方式来设置为MinGW,它会自动设置intelliSenseMode为"linux-gcc-x64":

不管是使用CMake的预设文件“CMakePresets.json”还是“CMakeSettings.json”都只是设置了编译器为MinGW中的gcc/g++,目前只能编译,不能使用gdb调试。

三、配置调试

想要调试,需要做如下设置,在“解决方案资源管理器”中的CMakeLists.txt文件上右键,在弹出的菜单中选择“添加调试配置”,如下图所示:

然后在弹出的“选择调试程序”对话框中选择“MinGW/Cygin(gdb)的C/C++启动”,如下图所示:

此时会创建一个launch.vs.json文件,如下图所示:

将"projectTarget"设置为编译的exe文件,这里为test.exe;把"miDebuggerPath"设置成"gdb.exe"(要求gdb.exe在PATH路径中);将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键即可进行调试:

至此就可以畅快地在Visual Studio中使用MinGW开发调试C/C++程序了。

到此这篇关于Visual Studio 2022使用MinGW来编译调试C/C++程序的文章就介绍到这了,更多相关Visual Studio 2022调试C/C++程序内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Visual Studio 2022 Preview 使用 C++20 Module的详细过程

    作为C++20的一大特性,据说Module能够大大加快项目的编译速度,最近正好看到微软推出了Visual Studio 2022 预览版,随附了面向 C++20 的最新工具链,赶紧拿来体验一下. 体验项目很简单,就两个小文件: 1. hello.ixx export module mo.hello.cpp; export auto hello() { return "hello cpp module"; } 2. main.cpp import mo.hello.cpp; import

  • 使用 Visual Studio 2022 开发 Linux C++ 应用程序的过程详解

    使用 Visual Studio 2022 开发 Linux C++ 应用程序 使用 Visual Studio 2022 with WSL2 ! Visual Studio 2022 引入了用于 Linux C++ 开发的本机 WSL2 工具集,可以构建和调试 Linux C++ 代码,并提供了非常好的 Linux 文件系统性能.GUI 支持和完整的系统调用兼容性. CMake 是对使用 Visual Studio 2022 的 C++ 跨平台应用开发的推荐,因为它允许在 Windows.WS

  • Visual Studio 2022 的安装和创建C++项目(图文教程)

    目录 1.下载 2.安装 3.接下来就是创建项目 4.如果你想添加多个.cpp,并且想要运行成功,可以右键.cpp.属性, 下面我们来讲一下如何下载安装VS 2022并且创建C++项目. 1.下载 首先,我们来到VS的微软官网下载地址:https://visualstudio.microsoft.com/zh-hans/vs/ 然后点击下图我画红圈的这个版本:Visual Studio Community(VS 社区版)这个版本是不要钱的,社区版其实就是个人版,在开发.调试上有一些限制,下面两个

  • Visual Studio 2022使用MinGW来编译调试C/C++程序的图文教程

    目录 一.创建项目 二.配置CMake 三.配置调试 Visual Studio的新版本已经可以像VSCode一样创建CMake项目了,但是默认的情况下是使用的Visual Studio编译器及调试器不包括MinGW中的工具集,参见下面的默认可选工具集: 本文就以实例来简单介绍一下VS2022中如何使用MinGW来编译.调试C/C++程序. 一.创建项目 首先,创建一个新项目: 然后,选择CMake项目: 填写项目名称,比如test 项目创建好后如下所示,由于笔者并未安装VS的Windows C

  • 基于C#的图表控件库 ScottPlot编译visual studio 2022

    目录 前言 C# 使用 ScottPlot 库 编译 ScottPlot 库 编译 运行 运行例程 小结 前言 基于 C# 的 图表控件库 ScottPlot,开源免费,可以用于开发一些上位机软件,如电压.电流波形的显示,开发[示波器]图形界面,可以显示一些图表.波形,总之功能比较的强大 ScottPlot 库的官方地址:https://github.com/ScottPlot/ScottPlot.git,里面提供了库相关的源代码,还有一些demo例程的源代码 C# 使用 ScottPlot 库

  • visual studio 2022 编译出来的文件被删除并监视目录中的文件变更(示例详解)

    目录 监视目录中的文件变更 visual studio 2022 编译出来的文件被删除 监视目录中的文件变更 因为编译出来的exe被删除(猜测被删除)了,所以就想验证下是不是,代码如下: //参考:https://zhuanlan.zhihu.com/p/493850984 // 监控文件变化.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束. // #include <Windows.h> #include <winbase.h> #in

  • 在Visual Studio Code中配置C++编译环境的问题

    目录 一.简介 二.准备工具 三.配置文件 一.简介   大学期间用的C++编译环境一直是Visual Studio 2010,最近碰到了一个赛题,需要用C++11的环境,且给了基础代码.基础代码在Visual Studio 2010不能成功运行,显示以下错误:   后经查询,是因为Visual Studio 2010 至 2013这几个版本仅支持部分的C++11特性,所以报错,又想到Visual Studio Code和其都是一家,也有很多人推荐,就想着能不能通过它来实现C++环境的编译,毕竟

  • visual studio 2022一个不易发现的问题

    D:\Program Files(x86)\C++(从入门到放弃)\01 结构体定义和使用\x64\Debug\01 结构体定义和使用.exe (进程 23260)已退出,代码为 -1073741819. 昨天晚上学习C++的时候,学习到结构体,跟着老师写代码发现何老师一模一样的代码总是编不过去.没有打印信息,总是报错. 源代码如下: #include <iostream> #include <string> #include <ctime> using namespa

  • Visual Studio 2022 激活码(亲测可用)

    目录 前言 下载地址 版本区别 系统要求 硬件要求 安装 体验 注册码 前言 Visual Studio 2022 正式版来了.新版本带有 go-live 许可证,可供生产使用.在 Visual Studio 2019 的基础上,新版集成开发坏境提供了非常多的改进,包括对 64 位..NET 6 的支持,为核心调试器提供更好的性能. 下载地址 https://visualstudio.microsoft.com/zh-hans/downloads/ 我们下载:https://www.jb51.n

  • 使用Visual Studio 2022开发前端的详细教程

    目录 创建宿主项目 安装前端库 在浏览器引入模块 模块化开发 前端开发环境多数基于Node.js,好处不多说了.但与使用Visual Studio开发的后端Asp.Net Core项目一起调试,却不是很方便,所以试着在Visual Studio 2022中开发前端. 创建宿主项目 首先创建一个空的Asp.Net Core项目作为宿主,创建完成后将Program.cs中的代码修改如下: var builder = WebApplication.CreateBuilder(args); var ap

随机推荐