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

这篇具有很好参考价值的文章主要介绍了Visual Studio 2022使用MinGW来编译调试C/C++程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


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

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

本文就以实例来简单介绍一下VS2022中如何使用MinGW来编译、调试C/C++程序。
本文链接地址:https://blog.csdn.net/witton/article/details/126211289?spm=1001.2014.3001.5501

一、创建项目

首先,创建一个新项目:

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

然后,选择CMake项目:

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

填写项目名称,比如test

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

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

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

二、配置CMake

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

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

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

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

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

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

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

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

此时即可正常编译了:

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

但是此时的智能感知识别并未正常工作,无法跳转到定义,此时需要设置智能感知模式(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的文件

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

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

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

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

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

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

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

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

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

然后再添加MinGW配置
Visual Studio 2022使用MinGW来编译调试C/C++程序

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

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

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

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

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

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

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

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

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

三、配置调试

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

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

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

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

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

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

将"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”,

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

此时我们直接按F5键即可进行调试:

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

至此就可以畅快地在Visual Studio中使用MinGW开发调试C/C++程序了。文章来源地址https://www.toymoban.com/news/detail-405261.html

到了这里,关于Visual Studio 2022使用MinGW来编译调试C/C++程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用visual studio编译调试代码时,运行窗口一闪而过

            对于头一次使用visual studio或者是刚接触编程使用visual studio软件时,可能会遇到这么个情况:代码好不容易写好后准备进行调试,按下调试发现有个什么东西在屏幕上一闪而过,然后下面的输出框显示生成成功,但自己却什么也没有看到,遇到这种情况该怎么办?  

    2024年02月08日
    浏览(46)
  • 编程小白必看!Visual Studio 2022详细安装使用教程(C/C++编译器)

    目录 【前言】 一、Visual Studio 2022简介 二、Visual Studio 2022下载安装 1.Visual Studio 2022下载地址 2.Visual Studio 2022安装 2.1下载完成后点击打开安装 2.2安装完毕以后需要重启软件,点击确定。  三、Visual Studio 2022使用教程  【最后】 🎈个人主页:库库的里昂  🎐CSDN新晋作者  🎉欢

    2024年02月13日
    浏览(34)
  • Visual Studio 2022 你必须知道的实用调试技巧

    目录 1、什么是bug?  2.调试是什么?有多重要? 2.1我们是如何写代码的? 2.2又是如何排查出现的问题的呢? ​编辑 2.3 调试是什么? 2.4调试的基本步骤 2.5Debug和Release的介绍 3.Windows环境调试介绍 3.1 调试环境的准备  3.2学会快捷键 3.3 调试的时候查看程序当前信息 3.3.1 查看

    2024年02月12日
    浏览(18)
  • 使用 Visual Studio 2022 开发 Linux C++ 应用程序

    前置条件: Windows上需要先安装 WSL2,方法见: Install WSL | Microsoft Docs 在 WSL2 中依次执行如下命令,进行安装如下必需软件: Visual Studio 2022 引入了用于 Linux C++ 开发的本机 WSL2 工具集,可以构建和调试 Linux C++ 代码,并提供了非常好的 Linux 文件系统性能、GUI 支持和完整的系统

    2024年02月05日
    浏览(73)
  • visual studio 2022 头文件和库目录问题造成的编译失败

    新安装visual studio 2022后,在一个简单工程上编译测试中,遇到标准头文件(new.h)报错,详情如下: 经验证和对比visual studio 2019,发现visual studio 2022以下sdk路径有一个明显差异。详情如下所示。 visual studio 2019 安装后的默认路径如下 而 visual studio 2022路径如下 库目录也一样不

    2023年04月08日
    浏览(65)
  • cuda11.7+visual studio 2022 编译时出现MSB3721问题

    公司项目更新了vs和cuda,我更新完之后发现: C:codeSSRImplDevgEcOG.Common.XrayRegistration_nc“C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.7binnvcc.exe” -gencode=arch=compute_86,code=“sm_86,compute_86” --use-local-env -ccbin “C:Program FilesMicrosoft Visual Studio2022CommunityVCToolsMSVC14.34.31933binHostX

    2024年02月04日
    浏览(14)
  • Visual Studio Code(VSCode) 编辑/编译/调试 C++ 代码

    最近想要切换编辑工具,之前工作中使用过 Source Insight,Eclipse,CLion 来写 C++ 代码。目前来说 Source Insight 已经非常古老,只有编写代码还说得过去,编译、调试方面都不行。Eclipse 使用的时间最长,相对来说也比较好用,但是对于 C++11 之后的 C++ 代码实际上支持的并不友好。

    2024年02月03日
    浏览(78)
  • Visual Studio 2022安装与编译简单c语言以及C#语言(番外)

    Visual Studio官网 1、下载社区版即可。 2、下载得到安装文件,右键以管理员方式运行安装文件。 3、点击继续。 4、等待下载完成。 5、这里学习C选择 使用C++的桌面开发 。如果学习C#,需要 勾选.NET桌面开发 。 6、修改软件及附属文件的安装路径,之后点击右下角的安装即可。

    2023年04月09日
    浏览(16)
  • Visual Studio Community 2022 + Win10 编译 OpenCPN 5.9.0 记录

    前两天尝试用vs2017编译OpenCPN5.0.0,前后折腾了两三天总算编译成功了。官网给出的编译过程比较简单,我在实际编译过程中遇上了很多很多的问题,最多的就是缺少库,好在最后编译通过了。 后来浏览OpenCPN官网的时候发现发布了“5.8.0 Fast Track”,说的就是5.8.0以上的版本的

    2024年02月09日
    浏览(19)
  • 为 Microsoft C++ 配置 VS Code在本教程中,您将配置 Visual Studio Code 以在 Windows 上使用 Microsoft Visual C++ 编译器和调试器

    在本教程中,您将配置 Visual Studio Code 以在 Windows 上使用 Microsoft Visual C++ 编译器和调试器。 配置完 VS Code 后,你将在 VS Code 中编译和调试一个简单的 Hello World 程序。本教程不教您有关 Microsoft C++ 工具集或 C++ 语言的详细信息。对于这些主题,网上有很多很好的资源。 如果您

    2024年02月10日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包