鱼C论坛

 找回密码
 立即注册
查看: 8164|回复: 54

[技术交流] VSCode搭建C语言学习环境超详细教程

[复制链接]
发表于 2023-2-7 04:35:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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)下载最新版即可:

2023-02-07_2-27-53.png

然后运行安装包,全部点击 “下一步”,默认安装即可~


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”:

2023-02-07_3-25-37.png

考虑到大多数鱼油外网下载不方便,小甲鱼给大家准备了备胎资源:

链接:https://pan.baidu.com/s/1_hMh5fQoPuZsJ0VpKgerww
提取码:cqkm

成功下载后,解压缩,里面有一个 “mingw64” 的文件夹,将其整个拷贝到 C 盘根目录下(放到其他盘也可以,但需要对下面出现的路径进行相应修改)。


3. 配置环境变量

进行 Windows 设置界面,在搜索框内输入 “环境变量”:

2023-02-07_4-39-17.png

打开 “编辑系统环境变量”:

2023-02-07_4-41-24.png

点击右下角的 “环境变量”:

2023-02-07_4-42-19.png

双击 “Path”,在弹出窗口中点击 “新建”,然后将 C:\mingw64\bin 填入其中(这里演示是放在 C 盘,如果你放在了其他位置,注意要做相应修改):

2023-02-07_4-46-28.png

使用 WIN+R 快捷键打开 “运行”,输入 cmd

2023-02-07_4-52-25.png

打开之后输入 gcc --version,出现以下内容说明配置成功:

2023-02-07_4-53-50.png


4. 安装 VSCode 插件

a. 中文界面

将英文界面转换为中文界面,无疑会让大家更有亲切感。

依次点击 VSCode 左侧的扩展(①),在应用商店的搜索框中输入 Chinese(②),点击 “install”(③):

2023-02-07_4-58-13.png

安装成功后重启 VSCode,即可看到熟悉的中文界面啦~


b. C/C++ 插件

C/C++ 插件是由微软官方开发并维护的,提供了丰富的 C/C++ 的开发支持。

在应用商店的搜索框中输入 C/C++,安装找到的第一个插件:

2023-02-07_5-07-54.png


c. Code Runner 插件

Code Runner 插件支持一键运行代码,非常便捷。

在应用商店的搜索框中输入 Code Runner,将其装之:

2023-02-07_5-13-42.png


5. 测试

在桌面创建一个文件夹,命名为 “test”。

点击 “资源管理器”(①),然后点击 “打开文件夹”(②),在弹出对话框中选择刚刚创建的 “test” 文件夹(③),点击 “添加”(④):

2023-02-07_5-21-19.png

点击 “新建文件”,然后输入 test.c 创建我们的第一个 C 语言源文件:

2023-02-07_5-27-37.png

在右侧代码框中熟练地敲写代码:

  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.     printf("I love FishC\n");

  5.     return 0;
  6. }
复制代码

2023-02-07_5-31-28.png

如果前面的安装流程顺利,那么在右侧咱们应该可以看到一个三角形,点击它右侧的那个标标(v),然后点击 “Run Code”(当然,直接点击那个三角形也可以):

2023-02-07_5-34-02.png

在底下的 “输出” 中,我们可以看到代码被成功地运行,并打印了我们耳熟能详的 “I love FishC”:

2023-02-07_5-37-31.png


6. 支持控制台输入

那么大家后面可能会遇到的问题是 —— VSCode 不支持命令行输入,比如 scanf() 函数它不响应。

这个其实是设置问题,我们依次点击 “文件”(①),“首选项”(②),“设置”(③):

2023-06-04_1-32-01.png

在弹出来的 “搜索设置” 中输入 RunInTerminal,将下面的方框勾选即可:

2023-06-04_1-40-23.png


7. 中文字符乱码问题

你可能还会如果遇到中文字符输出乱码的,比如下面代码:

  1. #include <stdio.h>

  2. int main()
  3. {
  4.     printf("I love FishC.\n");
  5.     printf("我爱小甲鱼。\n");

  6.     return 0;
  7. }
复制代码

它的输出可能是这样的:

  1. PS C:\Users\goodb\Desktop\test> cd "c:\Users\goodb\Desktop\test" ; if ($?) { gcc test.c -o test } ; if ($?) { .\test }
  2. I love FishC.
  3. 鎴戠埍灏忕敳楸笺
复制代码

中文输出我们一个字都不认识,甚至连字符数量都不对!

不要慌,这是典型的字符串乱码问题(通常在 Windows 系统中会出现)。

这是由于 VSCode 默认使用了 UTF-8 编码,而对于 C 语言,在 Windows 操作系统中,我们通常需要使用 GBK 编码。

使用快捷键 Ctrl + Shift + P,输入 “Settings”,打开 “Open Settings (JSON)”(如果没有,打开 “Open Settings (UI)” 也可以):

2023-06-10_2-54-49.png

如果打开的是 “Open Settings (UI)”,点击右上角这个标志,可以将其转换为 JSON:

2023-06-10_2-57-14.png

找到 “code-runner.executorMap”,然后找到 “c”,添加 “&& chcp 65001”:

2023-06-10_3-02-34.png

如果没有可以自行添加:

  1. ...
  2.     "code-runner.executorMap": {
  3.         "c": "cd $dir && chcp 65001 && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
  4.     },
  5. ...
复制代码

保存之后,测试一下:

2023-06-10_3-07-40.png

OK,成功了~



PS:不要将代码修改为 GBK 编码,因为这样的话尽管编译程序可以了,但是调试代码时还会出现乱码。


补充:

如果点击 “运行 C/C++ 文件” 和 “调试 C/C++ 文件” 报出类似 “Unable to start debugging. Unexpected GDB output from command ...” 的错误,

是因为路径中存在中文,无法被 C/C++ 插件解析,将路径中的中文修改为英文即可解决问题。


评分

参与人数 6荣誉 +21 鱼币 +27 贡献 +12 收起 理由
天马流星拳 + 5 + 5 + 3 鱼C有你更精彩^_^
zsy0226 + 1
零寒 + 5 + 5 小甲鱼YYDS
Mta123456 + 5
liuhongrun2022 + 5 + 5 + 3 小甲鱼YYDS
不二如是 + 6 + 6 + 6 小甲鱼YYDS

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-7 05:53:27 From FishC Mobile | 显示全部楼层
学习中......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-7 08:21:48 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-7 09:38:01 | 显示全部楼层
打算在Vs中配置C,小甲鱼就发教程了,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 1

使用道具 举报

发表于 2023-2-7 09:45:57 From FishC Mobile | 显示全部楼层
不得不说这个 C++ 插件和 clangd/LSP 比差远了,前端个人使用体验也是 Clang 比 GCC 在查错能力、输出质量上高出不少。有能力的话还是建议配置这套环境

点评

都是好工具,Clang 是后起之秀,针对 GCC 很多不擅长的地方做了提升;GCC 则是纯种血统传承。  发表于 2023-2-8 01:26
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-7 11:08:23 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-7 16:25:56 | 显示全部楼层
卷就对了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-7 18:11:13 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-7 18:14:15 | 显示全部楼层
看来我的这个还是失宠了:https://fishc.com.cn/thread-202936-1-1.html

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-7 19:09:33 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-7 20:48:04 | 显示全部楼层
如歌调试呢

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-15 14:44:37 | 显示全部楼层
十分感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-27 14:42:30 | 显示全部楼层
进我收藏夹吃灰吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-28 14:41:37 | 显示全部楼层
VSCode轻量吗,不敢苟同.

点评

不到 100MB,所有需要的功能都可以通过插件来添加,显得轻量了~  发表于 2023-5-18 01:52
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-8 22:38:06 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-19 13:35:00 | 显示全部楼层
我的运行出错,有高手能帮忙看下什么原因吗?初学者没找到问题。谢谢
输出日志如下:
[Running] 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

[Done] exited with code=1 in 3.025 seconds

点评

先保存在运行 出错复制代码先百度一下  发表于 2023-6-17 10:43
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 4 反对 0

使用道具 举报

发表于 2023-4-24 18:56:34 | 显示全部楼层
c/c++我喜欢devcpp,python…由于code是以终端形式运行程序的,所以我放弃了pycharm,但微软的东西我会小心对待
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-24 19:27:25 | 显示全部楼层
歌者文明清理员 发表于 2023-4-24 18:56
c/c++我喜欢devcpp,python…由于code是以终端形式运行程序的,所以我放弃了pycharm,但微软的东西我会小心 ...

我特别好奇您用不用 Windows,虽然从您之前的言行看是用的。既然这么反对微软何必还要使用 Windows?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-24 19:33:49 From FishC Mobile | 显示全部楼层
dolly_yos2 发表于 2023-4-24 19:27
我特别好奇您用不用 Windows,虽然从您之前的言行看是用的。既然这么反对微软何必还要使用 Windows?

我妈给我买的windows,我咋知道为什么?linux没用,学而思都没有
mac确实不错
windows是主流(悲),mac我也想用,甚至想活在虚拟机里;vmware里没mac选项
另外,蓝桥杯什么的比赛推荐使用Windows,我有啥办法?win10自动更新,win7只能用到python37,还不如用mac
你有mac虚拟机教程吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-4-24 19:52:22 From FishC Mobile | 显示全部楼层
歌者文明清理员 发表于 2023-4-24 19:33
我妈给我买的windows,我咋知道为什么?linux没用,学而思都没有
mac确实不错
windows是主流(悲),ma ...

感谢回答,我想我明白您的想法了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 10:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表