C/C++ Debug环境搭建

文章介绍了两种C/C++的测试环境搭建方法。一是使用小龙DevC++,它是一个优化过的DevCPP版本,提供简单安装和便捷的编程体验。二是通过MinGW和VSCode,适合熟悉编译过程的用户,但需要手动配置环境和学习额外知识。MinGW-w64是GCC的Windows版本,提供了不同版本以适应不同需求。在VSCode中,需安装相应插件以实现调试功能,注意编码格式对中文字符显示的影响。
摘要由CSDN通过智能技术生成

自己搭建C/C++测试环境,网上的经验有很多,我也是参考了诸多网友的经验总结了两个比较好方法,总结如下。

背景知识:C语言作为一种高级语言无法被机器直接识别,必须要有一个编译器将写好的语言编译为机器能识别的低级语言,这个过程叫做编译,平时直接在Dev
CPP中进行debug时,软件已经为我们配置好编译器了,我们只要完成代码设计即可仿真验证了;那么如果是自己直接编写源文件不用像Dev
CPP之类的软件就需要了解相关的编译器和命令,直接通过编译器进行debug。

方法一:小龙 Dev C++

优点:编译环境直接配置好了,只需设计代码即可进行debug,不需要额外的操作。
在这里我推荐小龙Dev C++,原有的Dev CPP 已开源并停更,他是在Dev C++的开源基础上进行了一定的汉化以及更新了编译器的升级版Dev C++。具体来说优化点有以下这些。

  • 安装简单:安装完毕即可使用,无需额外配置;
  • 使用方便:可插入常用代码片段,快速开始编程;
  • 支持单文件开发和多文件项目开发;
  • 可对代码自动格式化,确保代码书写规范;
  • 编译出错信息自动翻译为中文显示;
  • 调试时自动显示函数参数和局部变量的值;
  • 支持使用图形函数库EGE 和 EasyX

方法二:MinGW + VSCode

这种方法需要对C语言的编译过程有一定的了解,要学习额外的关于编译的知识,上手相对没有那么容易。
MinGW( Minimalist GNU for Windows):MinGW-w64

MinGW将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 不具备的,Linux平台下的开发工具。一句话来概括:MinGW 就是 GCC 的 Windows 版本 。
MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行程序。正因为如此,MinGW 现已被 MinGW-w64 所取代,且 MinGW 也早已停止了更新,内置的 GCC 停滞在了 4.8.1 版本,而 MinGW-w64 内置的 GCC 则更新到了12.2.0 版本。
现在的MinGW-w64分支很多 ,现在我们简要了解一下各版本之间的区别。

Github上的MinGW-W64-binaries : niXman/mingw-builds-binaries: MinGW-W64 compiler binaries (github.com)

基于Linux核心基于Win
i686-12.2.0-release-posix-dwarf-msvcrt-rt_v10-rev2x86_64-12.2.0-release-posix-seh-msvcrt-rt_v10-rev2
i686-12.2.0-release-posix-dwarf-ucrt-rt_v10-rev2x86_64-12.2.0-release-posix-seh-ucrt-rt_v10-rev2
i686-12.2.0-release-win32-dwarf-msvcrt-rt_v10-rev2x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2
i686-12.2.0-release-win32-dwarf-ucrt-rt_v10-rev2x86_64-12.2.0-release-win32-seh-ucrt-rt_v10-rev2

"I686"意指适用于32位操作系统的的程序包
"12.2.0"意指当前程序包版本位12.2.0
"posix"适用于基于Linux kernel 开发而来的操作系统,如linux,macos
"win32"适用于基于windows开发而来的操作系统,如windows
"dwarf,seh,sjlj"这些都是异常处理模型,其中dwarf仅支持32的操作系统,性能较强;seh仅支持64位的操作系统,性能较强;sjlj同时支持32位和64位操作系统,但性能较差。
“msvcrt” 在较老的windows操作系统(win10之前),较低版本的visual studio(2017之前)上使用。
"ucrt"在较新的操作系统和visual studio上使用。

下载好对应的MinGW-W64后解压到目标文件夹下(这个由自己定),然后将mingw下的bin文件夹所在的位置添加到系统环境变量中并在终端中通过 gcc -v 检查是否配置成功。

在完成以上步骤后在 VSCode 中添加"C/C++",“C/C++ Extensions”,“C/C++ Compile Run”,“Native Debug"插件,此时可通过F6调用"C/C++ Compile Run"的功能直接链接到配置好的 MinGW-W64,进行 debug。当然也可以通过"Native Debug"半自动完成 task.json 和 launch.json 的配置进行仿真,此时是通过建立的 task.json 和 launch.json 进行 Debug,这种 Debug 方式将会导致设计中 GB 2312 格式的中文字符以 UTF - 8 格式输出,目前我还没有找到较好的解决方法。不过要是使用"C/C++ Compile Run”,"Code Runner"插件直接进行 Debug 则不会产生乱码问题。
在这里插入图片描述

PS:直接调用 VSCode 配置的 task.json、launch.json 进行 debug 如果出现中文乱码是因为编码格式不统一产生的,将源文件的编码格式由 GB2312 改为 UTF - 8 即可。

2022-02-13 增补

不过要是想不使用插件在 VSCode 中集成终端 Debug,必须将设计的中文字符集改为 UTF - 8,因为集成在 VSCode 中的终端只支持 UTF - 8 编码,不论是将集成终端设为 PowerShell 或者 CMD 都是一样的,所以最好程序设计中不要出现中文,注释最好也要用英文。
在这里插入图片描述
对于如果设计中有中文字符出现,还非要直接使用 VSCode 集成终端 Debug 的同学,我的建议创建一个 UTF_8_Design 存放带有中文字符的设计,如果要转码点击右下角的 UTF-8,然后选择通过编码保存,此时代码中的中文字符可能会乱,不过不要担心,Crtl + Z 一下即会恢复正常,再按下 Ctrl + S 即可保存。或者直接使用 Dev C++ 进行开发,一了百了。

Reference:

1、VScode tasks.json和launch.json的设置 - 知乎 (zhihu.com)
2、vscode 文件配置launch.json tasks.json - 冰糖葫芦很乖 - 博客园 (cnblogs.com)
3、B站-win11上安装MinGW最新版gcc12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值