最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Visual?Studio?2022使用MinGW來(lái)編譯調(diào)試C/C++程序的圖文教程

 更新時(shí)間:2022年08月08日 09:44:19   作者:witton  
這篇文章主要介紹了Visual?Studio?2022使用MinGW來(lái)編譯調(diào)試C/C++程序,以實(shí)例來(lái)簡(jiǎn)單介紹一下VS2022中如何使用MinGW來(lái)編譯、調(diào)試C/C++程序,需要的朋友可以參考下

Visual Studio的新版本已經(jīng)可以像VSCode一樣創(chuàng)建CMake項(xiàng)目了,但是默認(rèn)的情況下是使用的Visual Studio編譯器及調(diào)試器不包括MinGW中的工具集,參見(jiàn)下面的默認(rèn)可選工具集:

本文就以實(shí)例來(lái)簡(jiǎn)單介紹一下VS2022中如何使用MinGW來(lái)編譯、調(diào)試C/C++程序。

一、創(chuàng)建項(xiàng)目

首先,創(chuàng)建一個(gè)新項(xiàng)目:

然后,選擇CMake項(xiàng)目:

填寫項(xiàng)目名稱,比如test

項(xiàng)目創(chuàng)建好后如下所示,由于筆者并未安裝VS的Windows C/C++開(kāi)發(fā)工具,也就沒(méi)有VS的C/C++編譯、調(diào)試器,所以會(huì)報(bào)錯(cuò)。

二、配置CMake

在VS2022中CMake的配置有兩個(gè)文件,一個(gè)是“CMakePresets.json”,另一個(gè)是“CMakeSettings.json”,在VS的“工具”/“選項(xiàng)”/“CMake”/“常規(guī)”中可以進(jìn)行設(shè)置使用哪個(gè)文件來(lái)進(jìn)行CMake配置,如下圖所示:

默認(rèn)是如果有“CMakePresets.json”則使用“CMakePresets.json”,否則使用“CMakeSettings.json”。
下面就分別介紹如何使用這兩個(gè)文件來(lái)配置CMake,二選一即可。

1.修改“CMakePresets.json”預(yù)設(shè)編譯工具集

新建項(xiàng)目后,默認(rèn)是生成了“CMakePresets.json”,打開(kāi)“CMakePresets.json”,可以看到默認(rèn)的編譯是cl.exe

為了使用MinGW中編譯器,將之改為gcc.exe和g++.exe(必須在PATH路徑中可以找到),如下圖所示:

此時(shí)即可正常編譯了:

但是此時(shí)的智能感知識(shí)別并未正常工作,無(wú)法跳轉(zhuǎn)到定義,此時(shí)需要設(shè)置智能感知模式(intelliSenseMode),打開(kāi)“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設(shè)置編輯器來(lái)配置CMake

新建的項(xiàng)目,默認(rèn)是生成的“CMakePresets.json”預(yù)設(shè)文件,先將之刪除掉或者在VS選項(xiàng)中設(shè)置CMake為“從不使用CMakePresets.json”,然后在項(xiàng)目中選擇“test的CMake設(shè)置”,此時(shí)項(xiàng)目中會(huì)創(chuàng)建一個(gè)CMakeSettings.json的文件

雙擊即可打開(kāi)CMake的設(shè)置編輯器,如下圖所示:

此時(shí)工具集中是默認(rèn)可用的工具集,可以看到并沒(méi)有MinGW。點(diǎn)擊右邊的“編輯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配置

此時(shí)工具集中可以看到MinGW了:

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

如果沒(méi)有定義env.BIN_ROOT變量則會(huì)找不到gcc和g++,可以直接使用PATH變量,所以把CMAKE_C_COMPILER改為gcc,CMAKE_CXX_COMPILER改為g++即可:

強(qiáng)烈推薦使用此方式來(lái)設(shè)置為MinGW,它會(huì)自動(dòng)設(shè)置intelliSenseMode為"linux-gcc-x64":

不管是使用CMake的預(yù)設(shè)文件“CMakePresets.json”還是“CMakeSettings.json”都只是設(shè)置了編譯器為MinGW中的gcc/g++,目前只能編譯,不能使用gdb調(diào)試。

三、配置調(diào)試

想要調(diào)試,需要做如下設(shè)置,在“解決方案資源管理器”中的CMakeLists.txt文件上右鍵,在彈出的菜單中選擇“添加調(diào)試配置”,如下圖所示:

然后在彈出的“選擇調(diào)試程序”對(duì)話框中選擇“MinGW/Cygin(gdb)的C/C++啟動(dòng)”,如下圖所示:

此時(shí)會(huì)創(chuàng)建一個(gè)launch.vs.json文件,如下圖所示:

將"projectTarget"設(shè)置為編譯的exe文件,這里為test.exe;把"miDebuggerPath"設(shè)置成"gdb.exe"(要求gdb.exe在PATH路徑中);將gdb的反匯編格式設(shè)置為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": "將反匯編風(fēng)格設(shè)置為 Intel",
          "text": "-gdb-set disassembly-flavor intel",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

再把調(diào)試目標(biāo)設(shè)置為“CMakeLists.txt”,

此時(shí)我們直接按F5鍵即可進(jìn)行調(diào)試:

至此就可以暢快地在Visual Studio中使用MinGW開(kāi)發(fā)調(diào)試C/C++程序了。

到此這篇關(guān)于Visual Studio 2022使用MinGW來(lái)編譯調(diào)試C/C++程序的文章就介紹到這了,更多相關(guān)Visual Studio 2022調(diào)試C/C++程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用C語(yǔ)言實(shí)現(xiàn)掃雷游戲

    使用C語(yǔ)言實(shí)現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了使用C語(yǔ)言實(shí)現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C++的指針,引用和STL詳解

    C++的指針,引用和STL詳解

    這篇文章主要為大家詳細(xì)介紹了C++的指針,引用和STL,使用數(shù)據(jù)庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C語(yǔ)言深入淺出講解順序表的實(shí)現(xiàn)

    C語(yǔ)言深入淺出講解順序表的實(shí)現(xiàn)

    線性表是最簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),而順序表又是最簡(jiǎn)單的線性表,其基本思想是用一段地址連續(xù)的儲(chǔ)存單元依次存儲(chǔ)線性表的數(shù)據(jù)元素,比如我們常用的一維數(shù)組,下面代碼實(shí)現(xiàn)了順序表的定義以及基本操作
    2022-04-04
  • c語(yǔ)言中malloc、realloc與calloc 的區(qū)別以及聯(lián)系

    c語(yǔ)言中malloc、realloc與calloc 的區(qū)別以及聯(lián)系

    以下是對(duì)c語(yǔ)言中的malloc函數(shù),realloc函數(shù)與calloc函數(shù)的區(qū)別以及它們之間的聯(lián)系進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-08-08
  • C語(yǔ)言 自增自減運(yùn)算的區(qū)別詳解及實(shí)例

    C語(yǔ)言 自增自減運(yùn)算的區(qū)別詳解及實(shí)例

    這篇文章主要介紹了C語(yǔ)言中的++a和a++的區(qū)別詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • C/C++指針介紹與使用詳解

    C/C++指針介紹與使用詳解

    不知從何時(shí)起對(duì)你一眼萬(wàn)年,從此,每一天被賦予了特別的意義。時(shí)隔多年,依然揮之不去是你------指針?。?!本篇中幾乎數(shù)據(jù)類型只用了int,但是float、double等也是可以的
    2022-08-08
  • C++11之std::future對(duì)象的使用以及說(shuō)明

    C++11之std::future對(duì)象的使用以及說(shuō)明

    這篇文章主要介紹了C++11之std::future對(duì)象的使用以及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C++實(shí)現(xiàn)走迷宮小游戲

    C++實(shí)現(xiàn)走迷宮小游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)走迷宮小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Qt為exe添加ico圖片的簡(jiǎn)單實(shí)現(xiàn)步驟

    Qt為exe添加ico圖片的簡(jiǎn)單實(shí)現(xiàn)步驟

    這篇文章主要給大家介紹了關(guān)于Qt為exe添加ico圖片的簡(jiǎn)單實(shí)現(xiàn)步驟,通過(guò)文中介紹的方法可以幫助大家實(shí)現(xiàn)這個(gè)自定義exe圖標(biāo)的效果,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 電腦開(kāi)機(jī)時(shí)間的計(jì)算代碼

    電腦開(kāi)機(jī)時(shí)間的計(jì)算代碼

    這幾天我琢磨著一件事,那就是怎么計(jì)算我的PC從開(kāi)機(jī)到現(xiàn)在的總時(shí)間。終于,看看這個(gè)函數(shù):GetTickCount();
    2013-05-05

最新評(píng)論

夹江县| 韶关市| 承德县| 吉安县| 晋州市| 如皋市| 揭阳市| 浮山县| 丹凤县| 台州市| 沽源县| 秦皇岛市| 凤台县| 乐东| 开化县| 东辽县| 庆城县| 昭觉县| 平顺县| 叙永县| 梁山县| 山丹县| 邯郸市| 四会市| 依安县| 宜昌市| 瓮安县| 来凤县| 宣恩县| 开远市| 雷山县| 荆门市| 垦利县| 鄱阳县| 大关县| 肃北| 汉川市| 崇礼县| 田东县| 台中市| 绵竹市|