"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++程序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
2006-2023 脚本之家 JB51.Net , All Rights Reserved.
苏ICP备14036222号