今天想到未来的一个学期要自学c++以及继续自学Python,并且还有学校课程基于C语言的数据结构,我意识到以往使用的Microsoft Visual c++ 2010 express可能不太够用(主要是嫌弃她没有自动补充功能)。于是就下载了VS Code作为替代,然后就花了我很长时间来配置c/c++环境
单纯下载VS Code很简单,上官网直接下就好了。不过进入官网后有两种下载模式,一个是stable另一个是insider。选择哪个呢?看看FAQ怎么讲:
好嘛说了这么多就是个使用版本,那我们当然选择稳定版本Stable了。之后就是一马平川,设定一下安装路径然后continue,continue,finish就行了(建议还是每一步看看)
不知道有没有和我一样的VS Code新手,事先不看B站,CSDN
的前辈的视频或者博客就直接自己硬干了。反正我是把以前写的project直接搬到VS Code里面就想直接运行,然后就——cannot open source file "stdio.h"
然后再回到官网看看咋整,选择FAQ下的c++板块,一眼就看到了那个她GCC on Windows
,这才发现自己还要下 Mingw-w64
来使用gcc,g++和gdb。于是有一次要吐槽外网的下载速度。最终选择百度网盘下载离线解压安装,只有100.7MB,不想开超会,就开个免费体验一分钟,绝对45s内搞定,然后就选择合适位置解压
接下来按照官网的指南改环境变量时发现他们写的太过简略,于是转战CSDN
,这种问题应当可以轻松解决,随便打开三个博客,然后发现各不相同,最终经过一番试探(直接用了最后打开的博客)选择了VSCode 开发环境搭建这篇的方法将GCC编译环境配置完成,这里就不过多论及,毕竟只是借鉴了前辈的方法
配置好了GCC,我就立刻回到了VS Code继续运行代码了
打开了之前写的Warshell算法求传递关系闭包矩阵的程序,然后F5,弹出了如下内容:
看到GDB就选择它(不然我辛辛苦苦下了那么久,花那么多时间配置环境干嘛呢),然后跳出来了:
考虑到我实际上写的是C语言程序,就选择了gcc.exe,然后就自动生成了.vscode文件夹下的lauch.json文件:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false, // 改为true
"MIMode": "gdb",
"miDebuggerPath": "D:\\Program Files (x86)\\MinGW\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "gcc.exe build active file"
}
]
}
仔细看看,只有一点不符合要求(主要是其他的看不太明白,就发现一个不妥之处),对于已经习惯使用控制器的我,当然要把”externalConsole“:
改成true
了,保存后没啥变化,只好再回到.cpp文件处,又一次按下F5,然后就跳出了不一样的东西:
后两个选项直接排除了,刚刚才说自己觉得只有一点不妥,这要是返回去看launch.json岂不是真香实锤,于是乎:
继续选择gcc,就出现了task.json:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "shell: gcc.exe build active file", //删掉shell:
"command": "D:\\Program Files (x86)\\MinGW\\bin\\gcc.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "D:\\Program Files (x86)\\MinGW\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": "build"
}
]
}
这次是真没看出来问题,于是接着F5,然后就成功了?
问题出现在哪呢?task.json真的没有问题吗?我不知道,然后遍览B站视频和CSDN
博客,终于发现了一丝端倪,他们的label
中都没有shell
,于是照搬删掉(确实不知道为什么要这么做),保存后再F5:
终于出现了我心心念念的黑框框,然而好事多磨,刚把矩阵输入完毕,按下回车键就立刻退出了程序。于是我以为是上学期老师提到过的要在return前面加上getchar()
来保留运行完毕的结果,但是添加上去之后依然无效,最后再次求助于网友,终于找到了符合我的问题的解答:再return 0
前加上system("pause")
于是再次F5:
终于(“终于”是最后一次“终于”了)符合我自己的要求了,不用再把VS Code当作纯文本编辑器了
在此感谢几位前辈的帮助,尽管他们不会知道:
CSDN
博主^Being^
和他的博文:VS Code编写C语言,代码调试之后,能输入值,但按回车之后闪退
B站UP主 Echo佩雨,小姐姐声音真美,就是太秀气(不开最大音量就听不见哈)
B站UP主 Yqifei 前文中提到的那篇博客同样是他的手笔
最后还有一点,好好看官网指南,一定能让你少走弯路却多花时间