文章目录
- 开始放飞之先搞个VSCode
- 重要提醒
- 安装VSCode
- 下载MinGW-w64
- 回到VSCode中去
- VSCode原生调试
- 键盘问题
- 遗留问题
- 参考文献
开始放飞之先搞个VSCode
突然发现自己的新台式机上面连个像样的编程环境都没有,全是游戏了!!!!
这怎么符合我好好学习天天向上努力奋斗勾搭好看小妹妹的初衷呢,不行,我们今天先来搞个VScode,虽然工作中常用的是VS studio,但是对VSCode神往已久了,磨刀不费砍柴功,等等我怎么连个像样的输入法都没有,啊我天天打错别字啊
重要提醒
本篇内容是在DeepSeek大将军的技术指导下完成的
安装VSCode
就在官网安装就好饿了
哦吼,怎么一上来可以用AI辅助,还free,不信哦,啊换电脑了,我的github密码是什么啊,先不搞吧
这个好像有点意思啊 不用鼠标 这不错 等下试试 奥 是通过设置不同的快捷键来方便操作就不用点了 不错
先跟着提示下载一个C/C++ Extension Pack,等等这个排序好多语言,还有Dart,好像很火,好想当全栈工程师啊
应该是这个Extension Pack 他只是支持带有C++特性的编辑器,如果想要真正运行C++程序需要依赖于电脑上我们自己安装的编译器,那种能在cmd窗口中像python一样的编译器
对的,Deepseek大将军告诉我:
- 编辑器而非IDE: VSCode 本质上是高度可定制的代码编辑器(类似 Sublime Text),而非全功能的 IDE(如 Visual Studio、CLion)。它的优势在于轻量、快速、扩展性强,通过插件可以实现 IDE 的大部分功能。
- 多语言支持:
默认支持多种编程语言(通过语法高亮、代码补全等),但运行和调试需要额外配置工具链或插件。
如果需要运行和调试,需要额外配置C++编译器和调试器,Windows下安装MinGW-w64 或 MSVC(这两个东西在VSstudio中是无感的,我在QT里面见过,让我选对应的编译工具,是吗还是只有第一个在QT中见过),此外deepseek大将军还告诉我 macOS/linux系统中通常自带g++或clang,啊他们怎么这么好,对了鸿蒙系统里面有内置的编译器吗
OK,那我们先来研究并安装一下这个MinGW-w64把
下载MinGW-w64
MinGW-w64(Minimalist GNU for Windows 64-bit)是一个开源的 Windows 工具链,用于编译和运行 C/C++ 程序。它是经典 MinGW 的升级版,支持:
- 64位和32位程序编译(x86_64 和 i686)。
- 现代 C/C++ 标准(如 C++11/14/17/20)。
- Windows API 开发(如 Win32 程序)。
- 生成原生 Windows 可执行文件(.exe),不依赖第三方运行时库。
(说实话我只熟悉第一条,而且为什么叫i686呢,啊!!)
seek将军推荐我使用预编译二进制包,感觉就是人家编译好了,还做了个exe安装程序,给你拷贝一下,那我们就用MSYS2(主打听劝),这个还是得开梯子下载不然好慢,我用平板下的,稍等现在平板是不是可以和电脑直接互联啊
破华为,意思是我得全套才行,不能搞个通用的传输工具吗? 商机啊,牛马驴。
啊,我又尝试了用蓝牙连接,蓝牙传东西怎么这么慢啊,要死了,才81.98M,这么慢,哇!!!!!!!!!!!
哇终于好了,也安装好了
MSYS教程里给我说了个这什么,合着你只是个下载器,骗子骗子,奥奥,deepseek大将军告诉了我说他是一个包管理器,好吧,看在你教程做的不错的份上就不和你计较了,略略略,快点给老子下载。
pacman -S mingw-w64-ucrt-x86_64-gcc
OK,安装完了
等下我们的下载目标不是MinGW-w64,怎么现在是gcc了,难道是一个东西,
OK,别急,是这样的,MinGW-64是一个为windows系统提供GNU(这个词我总是想到GUN,哈哈)工具链的开源项目,其核心任务是将GCC和其他GNU工具,适配到Windows平台,使其能够生成原生的Windows程序。
总之就是MinGW-64包含编译器(GCC),二进制工具链(链接器和汇编器),gdb调试,和WindowsAPI头文件和库等,如下图就是下载下来的ucrt64工具链(等等,这就是说,C++代码在windows系统上的运行,需要调用windows系统的某些接口,从而完成一些内核指令,操作系统是用来隔离和保护的,而究竟是在哪一部做的这个事情嘞,这个先放放)
- GCC 是核心编译器,MinGW-w64 是让 GCC 在 Windows 上工作的“适配层”。
- 在 Windows 上开发 C/C++,你需要通过 MinGW-w64 使用 GCC。
等等,那么GCC和g++有什么区别,编译的时候不是只用g++吗,但我在bin目录下却看到了这个
g++.exe main.cpp -o main.exe
这是怎么一回事呢
我的天哪,Deepseek你好厉害,我是不是快失业了,呜呜呜,明白了意思是我们下载的MinGW-w64里面是既包含g++也包含gcc的编译器的,
OK,那接下来的一步就是把下载的mingw-w64-ucrt-x86_64-gcc(UCRT)中的bin目录加到windows的环境变量中去,添加完成后就可以在cmd中使用 g++ --version 来查看编译器版本,并能在cmd中通过bash命令来对cpp代码进行编译了,哦耶。
有关这两的区别,Deepseek大将军是这么说的,OK
那我们现在是不是就可以回到VScode中去了,啦啦啦啦啦啦
回到VSCode中去
VScode好笨呀,那现在我们如何把二者关联起来,能够在VScode中点击运行就运行呢,像破烂VStudio一样
奥奥 明白了 在VScode中运行代码,其实和我们在bash中编译代码成为exe并运行exe别无二致,那么我们就需要考虑定义相关的编译参数和调试(运行)参数。大胆猜一下,支持一键运行代码的Code Runner是不是就是帮我生成了一份默认的编译参数和调试参数呢?
推荐大家直接使用code Runner,还是在Extension中下载,哈哈哈,编译参数和调试参数以及中文等需要再去调整吧,嘿嘿嘿,in your face,中文乱码问题
等等 code Runner怎吗调试呢
哦吼,CodeRunner不支持代码调试,怪不得,我说怎么插件官方的Usages里面没有,要使用VSCode原生调试方法了,Deepseek大将军说只用配置一次,不错,不对那不还是一个工程需要配置一次,下午再搞吧,累了累了,希望今天能把这个弄完 =.=
VSCode原生调试
关于launch.json和tasks.json的生成,胡乱点点就有了
搞完这两个后,开启debug
出现提示说找不到pipe program, 说着就让我打开launch.json
突然发现我没有安装gdb,合着前面只是安装了个编译器
安装完gdb之后,再将自动生成的launch.json中的相关字段改为对应msys64编译工具链中的对应可执行文件。
这里的pipeProgram不太好理解,Deepseek大将军是这样说的
就是说这里的debuggerPath和pipeProgram需要来自同一套编译工具链。
这样改完之后,就能通过F5开关开启调试了,哦耶。
键盘问题
先解决一个键盘问题,我的阿斯盾键盘(打广给钱)87块钱但感觉超级牛皮,windows键一直用不了windows+R,强迫症要犯了
问了一下客服,还有 Fn + W 切换WIN系统,和 FN + A 切换苹果系统的说法, 牛皮,穷的没用过苹果,这两个系统之间对于键盘来说有什么区别嘞,不懂不明白
遗留问题
- VSCode内部控制台输出中文乱码问题,Deepseek让我去改settings.json,改完了还是不生效啊
- launch.json与tasks.json的深入研究
- 其他插件的研究,我要搞好多语言的编译器,啊哈哈哈虽然我不会,还有VSCode不是有个leetcode插件,下回来搞,好想打游戏
- 对于MinGW64编译链的研究,本质上来说,C++是高级语言,经过编译器后能变成所在系统可以读懂的二进制文件,那么在这个过程中,编译链是如何与系统相互适配的,是否Windows系统有一份规范,说你必须翻译成这样我才能看懂,OK,那么编译链的工作就是一个Windows国家的翻译。
- VSCode的AI辅助编程功能,够义气吧VSCode,记得给我打钱
参考文献
https://blog.csdn.net/ScienceRui/article/details/117392080
Deepseek大将军:https://chat.deepseek.com/