【软件】vscode c/c++ run+debug
前言
在大型项目开发面前,有clion,visual studio 20xx系列的产品存在,但是相对于基础学习,这些大型开发环境的占用和安装流程可能会稍微麻烦点。
在大学常规学习C语言时,我们常用的软件有:
dev c++
visual c++ 6.0
code:blocks
c-free
等常规软件,他们界面相对简单体积小,能满足基本学习要求。故相对而言,这些软件大部分都没什么更新了所以更固定。
如果对对其他不做要求且需要高版本的gcc,那么你可以下载更高版本,去修改编译器使用的gcc即可。
但是如果你和作者一样也喜欢折腾,也对编辑器的外观有一定的追求,那么本文或许能够帮到你。
注意!配置可能稍显麻烦,不喜欢折腾的千万别勉强
正文
正文须知:很多软件的发布都是基于海外服务器,国内或有转载的,但是本文基于官网操作。懂科学之力的自然会得心应手。
0.本文所使用的环境
- windows 11
- vscode 1.65.2
- gcc 9.2
1.vsocde
首先我们需要进入官网下载一个vsocode,戳此处,这里稍微注意下微软在国内的下载速度有点慢,有能力的朋友可以使用科学之力。
下载完之后打开vscode,默认是英文环境,按图操作:
点击安装,完成后右下角会提示重启软件以应用设置。2.mingw
2.1 gcc安装
然后我们需要下载gcc,因为code本身只作为一个编辑器,编译以及debug的功能还是需要依赖gcc。戳此处跳转mingw,还是老话这玩意下的比较慢。
下载完成后打开.exe程序
点击install,会进入到
在此处你可以修改下载的路径,全部下载大概需要五百多兆的内存,老电脑如果c盘不够大建议放置其他盘,新电脑则问题不大,看到后等待下载完点击continue
,然后轮到我们选择需要安装的组件了:,之前百度的其实也不明不白的,所以直接快刀斩乱麻,全都下载,每行右击选择mark for installation之后点击左上角静候安装,完成后找到你所安装的文件夹目录,进入bin目录,往下滑能看到gcc、g++、gdb则表示基本无误
2.2 添加到path
右击此电脑->属性->高级系统设置->环境变量
然后找到系统变量里的path打开
点击新建,将你mingw安装目录copy进来,记住要带上bin,如图所示
完成后我们打开cmd或powershell进行验证
1 | gcc -v |
得到如图提示即可
可以的话先重启下电脑,以免vsocde抽风没识别到gcc已经添加到系统环境变量中了。
当然尝鲜的话你可以使用dev c++的gcc使用,只存在版本的差异而已。路径应该是你所安装的盘符/dev c++/bin目录下。但同时也要注意是否添加入变量环境中!
2.3 hello world
同样的我们在拓展商店中先下载一个基础从c/c++拓展
建议先创建一个文件夹用来专门存放.c文件
我们新建一个hello.c文件
编写第一个程序:
1 |
|
f5或者点击运行->启动调试会弹出一个选择配置
这里我们直接选择第一个gdb即可,以前用过第二个,但是配置不够完整…..导致程序只能编译运行不能debug,所以也很苦恼,最后将两者结合了一下就差不多行了。
我们选择gcc.exe之后,我们会发现文件夹下多了一个.vscode,里面有两个文件分别是launch.json和tasks.json。并且都是存在内容的,但是你会发现程序并没有运行,所以直接套用我这里的模板。
需要注意几点就是我的mingw路径是在d盘的,我会在launch.json和tasks.json中指出,希望你能仔细阅读
1 | { |
1 | { |
如果是c++的配置,记得将tasks.json的command程序改成g++.exe,至于label和prelaunchtask这两个要是愿意也可以把gcc.exe 改成g++.exe
使用模板之后,我们发现程序成功在cmd跑起来了
因为win11特性,cmd和powershell打开都是通过windows terminal打开的,这样我感觉挺好的
然后我们只需要注意launch配置中多了一块,那个就是我们需要用到的debug部分。如何使用如下:
首先创建一个断点,
就是鼠标放在语句前面出现红点,鼠标单击即可。
将任务调至debug
然后f5启动调试,我们会看到
程序停在了print函数中,右边可以看到变量i现在的值为0,cmd也没有输出,我们点击上面也就是单步调试,进行下一步操作的意思,我们会看到箭头跑到了for循环上,cmd也打印了一个0。
至此,基本的程序运行和debug就解决了
要说vscode的缺点肯定是有的,有些很刁钻奇怪的问题他不一定会提示错误,但是就是无法运行,这点在vs 20xx系列上面就能对比出来,不过基本够用了。
结语
当然vscode还有一点不好,其实也是归根在微软身上,windows操作系统有个很不好的点就是系统的编码是根据地区设置来的。
那么是什么意思呢,就是简单来说,cmd的字符编码是gb2312还是啥来着,也就是在cmd中输入chcp,系统回执是936,而真正的项目开发一般都采用utf-8环境,也就是所说的65001。
所以你会发现中文,通常在cmd中都会乱码,可能网上有方法是教你文件改成ansi啊,或者gb2312的,但是这些都是治标不治本的,微软还在地区选项中有一个beta模式,可以强制系统编码为65001,但是下场很凄凉,到了别人936的环境中,你的文件所包含的中文全部是乱码的。
目前看来是没有什么办法能够根治的,因为即便你能永久修改了powershell或者cmd的字符集,但是老的windows软件可能用的还是那套字符,多少会存在差异,这也是为什么有些项目都会放在linux上开发。