VSCode搭建C语言学习环境超详细教程
VSCode搭建C语言学习环境超详细教程缘起
都 2023 年了,Windows 都更新到 11 了,但还是发现有很多朋友在苦苦寻觅 VC++6.0 的安装包……
究其根源,无非就是现在很多学校的教学,都仍然还在使用 VC++6.0 这个老古董!!
VC++6.0 在当打之年确实是经典,没错!
但放到现代,真的已经是廉颇老矣……且不说在 Windows 7 以后,娘家(微软)就主动放弃了对其的兼容性。
更甚者,时代在进步,C 语言的标准也一直跟着更迭,VC++6.0 可是 98 年的产物,支持的是 C89 的语法标准,
究竟有多落伍,大家可以看一下这张表:
时间 C 语言语法标准
1972 诞生
1978 K&R C
1989/1990 C89
1999 C99
2011 C11, C1x
2018 C17
2023 C23, C2x
VC++6.0 支持的 C89 是跟它同一个年代的 C 语言语法标准,距离最新版的标准已经过去 34 年了。
这说明什么问题?
这说明即使你用 VC++6.0 学会了 C 语言,放到现代环境中开发,100% 会出错!
我们学习不就是为了以后工作能用得上嘛?
既然用不上,那还浪费这个时间干什么~
安利
前几年小甲鱼做了《带你C带你飞》的 C 语言系列课程,采用的是 VisualBox + CentOS 的方案(感兴趣的同学可以参考 -> 传送门)。
不过后面有一些鱼油反馈,在环境搭建上遇到了不少阻碍,希望小甲鱼给弄一个 Windows 上的实现方案。
OK,这不就来了嘛~
这篇文章,小甲鱼教大家如何使用 VSCode 搭建 C 语言学习环境!
VSCode 是微软开发的一个开源文本编辑器(看,微软也在转变,竟然投向开源的怀抱了),近几年可谓风头出尽,颇有龙头之姿~
因为相较于其他编辑器来说,VSCode 有着非常多的优点,从而让开发者们对其爱不释手。
其中最让大家欣喜若狂的就是 VSCode 附带了一个非常成熟的插件应用市场,
几乎任何开发者的需求都可以通过插件来扩充实现。
得益于该插件市场,VSCode 在保持非常轻量化的同时,
还支持开发者将其打造成自己想要的开发环境,这就非常伟大了!
开拔
1. 下载并安装 VSCode
由于是开源软件,VSCode 并不需要收费,咱们直接从官网(https://code.visualstudio.com)下载最新版即可:
然后运行安装包,全部点击 “下一步”,默认安装即可~
2. 下载 MinGW
MinGW 是什么?
大家知道为什么小甲鱼在《带你C带你飞》系列课程中,要花那么大的功夫去搭建 Linux 学习环境吗?
其实根本原因就是希望大家用最纯正的 GCC 套装进行 C 语言编程!
MinGW 其实就是 GCC 在 Windows 操作系统上的一个移植方案,MinGW -> Minimalist GNU for Windows,
MinGW 的工作原理是使用微软自身的运行库,来生成 Windows 下的执行代码。
MinGW 官方下载地址 -> https://sourceforge.net/projects/mingw-w64/
打开网页,点击 “Files”,拉到下方,选择 “x86_64-posix-seh”:
考虑到大多数鱼油外网下载不方便,小甲鱼给大家准备了备胎资源:
链接:https://pan.baidu.com/s/1_hMh5fQoPuZsJ0VpKgerww
提取码:cqkm
成功下载后,解压缩,里面有一个 “mingw64” 的文件夹,将其整个拷贝到 C 盘根目录下(放到其他盘也可以,但需要对下面出现的路径进行相应修改)。
3. 配置环境变量
进行 Windows 设置界面,在搜索框内输入 “环境变量”:
打开 “编辑系统环境变量”:
点击右下角的 “环境变量”:
双击 “Path”,在弹出窗口中点击 “新建”,然后将 C:\mingw64\bin 填入其中(这里演示是放在 C 盘,如果你放在了其他位置,注意要做相应修改):
使用 WIN+R 快捷键打开 “运行”,输入 cmd:
打开之后输入 gcc --version,出现以下内容说明配置成功:
4. 安装 VSCode 插件
a. 中文界面
将英文界面转换为中文界面,无疑会让大家更有亲切感。
依次点击 VSCode 左侧的扩展(①),在应用商店的搜索框中输入 Chinese(②),点击 “install”(③):
安装成功后重启 VSCode,即可看到熟悉的中文界面啦~
b. C/C++ 插件
C/C++ 插件是由微软官方开发并维护的,提供了丰富的 C/C++ 的开发支持。
在应用商店的搜索框中输入 C/C++,安装找到的第一个插件:
c. Code Runner 插件
Code Runner 插件支持一键运行代码,非常便捷。
在应用商店的搜索框中输入 Code Runner,将其装之:
5. 测试
在桌面创建一个文件夹,命名为 “test”。
点击 “资源管理器”(①),然后点击 “打开文件夹”(②),在弹出对话框中选择刚刚创建的 “test” 文件夹(③),点击 “添加”(④):
点击 “新建文件”,然后输入 test.c 创建我们的第一个 C 语言源文件:
在右侧代码框中熟练地敲写代码:
#include <stdio.h>
int main(void)
{
printf("I love FishC\n");
return 0;
}
如果前面的安装流程顺利,那么在右侧咱们应该可以看到一个三角形,点击它右侧的那个标标(v),然后点击 “Run Code”(当然,直接点击那个三角形也可以):
在底下的 “输出” 中,我们可以看到代码被成功地运行,并打印了我们耳熟能详的 “I love FishC”:
6. 支持控制台输入
那么大家后面可能会遇到的问题是 —— VSCode 不支持命令行输入,比如 scanf() 函数它不响应。
这个其实是设置问题,我们依次点击 “文件”(①),“首选项”(②),“设置”(③):
在弹出来的 “搜索设置” 中输入 RunInTerminal,将下面的方框勾选即可:
7. 中文字符乱码问题
你可能还会如果遇到中文字符输出乱码的,比如下面代码:
#include <stdio.h>
int main()
{
printf("I love FishC.\n");
printf("我爱小甲鱼。\n");
return 0;
}
它的输出可能是这样的:
I love FishC.
鎴戠埍灏忕敳楸笺
中文输出我们一个字都不认识,甚至连字符数量都不对!
不要慌,这是典型的字符串乱码问题(通常在 Windows 系统中会出现)。
这是由于 VSCode 默认使用了 UTF-8 编码,而对于 C 语言,在 Windows 操作系统中,我们通常需要使用 GBK 编码。
使用快捷键 Ctrl + Shift + P,输入 “Settings”,打开 “Open Settings (JSON)”(如果没有,打开 “Open Settings (UI)” 也可以):
如果打开的是 “Open Settings (UI)”,点击右上角这个标志,可以将其转换为 JSON:
找到 “code-runner.executorMap”,然后找到 “c”,添加 “&& chcp 65001”:
如果没有可以自行添加一下:
"code-runner.executorMap": {
"c": "cd $dir && chcp 65001 && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
},
保存之后,测试:
OK,成功了~
{:10_298:}
PS:不要将代码修改为 GBK 编码,因为这样的话尽管编译程序可以了,但是调试代码时还会出现乱码。
补充:
如果点击 “运行 C/C++ 文件” 和 “调试 C/C++ 文件” 报出类似 “Unable to start debugging. Unexpected GDB output from command ...” 的错误,
是因为路径中存在中文,无法被 C/C++ 插件解析,将路径中的中文修改为英文即可解决问题。
学习中...... {:7_146:} 打算在Vs中配置C,小甲鱼就发教程了,感谢
不得不说这个 C++ 插件和 clangd/LSP 比差远了,前端个人使用体验也是 Clang 比 GCC 在查错能力、输出质量上高出不少。有能力的话还是建议配置这套环境 {:5_108:} 卷就对了{:10_281:} {:10_279:} 看来我的这个还是失宠了:https://fishc.com.cn/thread-202936-1-1.html
{:10_266:} {:5_105:} 如歌调试呢
十分感谢 进我收藏夹吃灰吧{:10_256:} VSCode轻量吗,不敢苟同. {:7_141:} 我的运行出错,有高手能帮忙看下什么原因吗?初学者没找到问题。谢谢
输出日志如下:
cd "c:\Users\admin\Desktop\C语言学习程序\ccode\" && gcc test.c -o test && "c:\Users\admin\Desktop\C语言学习程序\ccode\"test
C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x2e): undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status
exited with code=1 in 3.025 seconds c/c++我喜欢devcpp,python…由于code是以终端形式运行程序的,所以我放弃了pycharm,但微软的东西我会小心对待{:10_256:} 歌者文明清理员 发表于 2023-4-24 18:56
c/c++我喜欢devcpp,python…由于code是以终端形式运行程序的,所以我放弃了pycharm,但微软的东西我会小心 ...
我特别好奇您用不用 Windows,虽然从您之前的言行看是用的。既然这么反对微软何必还要使用 Windows? dolly_yos2 发表于 2023-4-24 19:27
我特别好奇您用不用 Windows,虽然从您之前的言行看是用的。既然这么反对微软何必还要使用 Windows?
我妈给我买的windows,我咋知道为什么?linux没用,学而思都没有
mac确实不错
windows是主流(悲),mac我也想用,甚至想活在虚拟机里;vmware里没mac选项
另外,蓝桥杯什么的比赛推荐使用Windows,我有啥办法?win10自动更新,win7只能用到python37,还不如用mac
你有mac虚拟机教程吗 歌者文明清理员 发表于 2023-4-24 19:33
我妈给我买的windows,我咋知道为什么?linux没用,学而思都没有
mac确实不错
windows是主流(悲),ma ...
感谢回答,我想我明白您的想法了。