C/C++ 新手避坑指南2:极简安装配置 VSCode:中文、C/C++扩展、中文乱码
用 VSCode 写你的第一个 Hello World,来自:《C/C++ 新手避坑指南 系列》
龙爸写给初学 C/C++ 的朋友们的新手避坑指南,扫平入门的几个大障碍的极简教程。
原文发布、维护于龙爸陪孩子学习 Python、C++ 的练习项目:
欢迎意见、建议和帮助,谢谢 🥰💕❤️
如果对你有帮助,请支持 Star~ ✨✨✨
转载时请保留声明和出处,谢谢 🤝🤝🤝
如果是
Github、MarkText、PDF等,请打开目录方便阅读 😎
极简安装配置 VSCode:中文、C/C++扩展、中文乱码
本教程不同于其它教程,相对更加简单,也不容易出现意外。
但因为面向小学生、初中生小朋友,所以详细步骤会比较详细,超龄的小朋友请根据自身情况适当快进。
本教程仅针对
Windows 10/11版本,不推荐Windows 7/XP,本教程也不考虑MacOS、Linux等系统。
现有的几乎所有教程都写的比较复杂,尽量选择较新的学习,因为版本更新后一些配置可能变化了或者不需要了。
很多教程的方法比较复杂的原因:
上一步,安装配置
C/C++编译环境的尾巴没有处理好;安装
VSCode之后,需要配置tasks.json、launch.json等等,比较复杂;
本教程简化和特别之处,这也是本教程目前全网唯一极简、唯一正确解决中文乱码:
结合上一步的正确设置,不需要额外配置;
调整了
VSCode的配置顺序,自动安装必备扩展,简化操作;
VSCode自动配置了tasks.json、launch.json;一键编译、调试、运行,默认不会出现中文乱码;
正确解决中文乱码:正确分析原因,才能选择正确方法。
当然,有一种更简单的安装方式:先安装第三方开发的 VSCode 扩展,用它来完成配置。
——龙爸不推荐,因为简单不代表不知其所以然。
——本文的方法虽简单,但没有跳过、遗漏应该掌握的基本操作,只纠正了错误、采用了不同的方法。
1. 什么是代码编辑器
编写代码,可以用记事本等文本编辑软件——大牛,更常见是使用专门为编程设计的代码编辑软件——普通人。
代码编辑软件 有很多,其中功能相对比较全面、强大的,带有编译、调试、源代码管理甚至项目管理和团队协作等等的,称为 集成开发环境(IDE,Integrated Development Environment)。
集成开发环境 IDE 也有很多,其中比较出名和被广泛使用的主要有开源、免费的微软公司 VSCode 和 JetBrains 商业授权的 CLion 等等。
微软公司有付费购买商业授权的 IDE——被软件开发行业尊称
戏称为宇宙第一 IDE的Visual Studio系列,非常强大,伴随了本教程作者的几乎整个软件生涯。这里的
VSCode全称为Visual Studio Code,正是微软公司后来推出的免费开源 IDE——但两者是不同的软件。 开源社区基于免费开源的VSCode还延申出了不同的开源版本,以后可以再深入了解。另外一家专门提供软件开发工具的著名公司
JetBrains:
JetBrains公司有很多非常棒的软件开发工具,比如各种编程语言的IDE,如Java开发人员最熟悉的IntelliJ IDEA,等等。 该公司的大部分软件需要付费购买商业授权才能使用,例如学习Python也可以用PyCharm,非常不错。 在校大学生可以通过向JetBrains公司申请教育授权来免费使用,其它人则可以通过创建和维护开源项目、公益项目来申请免费试用。
借此文凭吊一下曾经非常著名的提供软件开发工具的公司
Borland:
Turbo Pascal、Turbo C、Borland C++、Delphi,
Visual J++、C#/.NET、Typescript(不好意思,串台了)。
对于初学者,推荐用 微软公司 的 VSCode(全称:Visual Studio Code)。
2. 下载安装 VSCode
VSCode 官网: https://code.visualstudio.com/
不记得没关系,浏览器输入
VSCode搜索,地址与上面相同那一条就是官网了。——下载速度很快,不必从其它网站下载二手的。
2.1. 下载后安装,默认选择为当前用户安装:选择 64位版本

建议不要安装到默认的 C 盘,这里为了演示简化:
—— 路径中不要出现中文 ,避免以后可能遇到的一些莫名其妙的麻烦,不必要 (GNU C/C++ 编译和调试器等等,对 Windows 和 中文环境的兼容性虽然已经很好了,但情况很复杂)

选中这两项方便一点:

2.2. 安装中文语言包
安装完成后,运行
VSCode,按下快捷键:Ctrl-Shift-X打开Extensions(扩展)——或者点左边工具栏积木方块样子的图标;在顶部的搜索栏输入:
Chinese并稍等符合条件的扩展包列表加载,选择下面的
Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code,选中并在右侧点击
Install,安装中文语言包扩展:

安装完成后,
VSCode右下角会弹出消息提示更改语言并重新启动, 点击Change Language and Restart,VSCode自动重启后就是中文环境了。

2.3.(此步跳过,后面自动安装)手动安装、配置 C/C++ 扩展
很多教程都会有这一步,本教程在后面步骤会自动安装,此处跳过。

3. 编写、运行你的第一段 C/C++ 代码
3.1. 打开文件夹
在 VSCode 中选择一个文件夹来保存你的代码,例如:D:\MyCode\Learn_C
注意: 路径和文件名中不要带空格、中文 ,避免后续编译、调试时无法预料的错误。
目前发现,主要是调试时对中文路径和中文文件名支持仍有问题(不是
gdb的问题,初步测试判断是VSCode终端环境有差异,待深入排查)。

3.2. 新建 C 文件
在 VSCode 左侧的资源管理器中,点右上角的 新建文件,

并为创建的文件取个名字比如 HelloWorld.c(英文),不需要内容
——注意扩展名用 .c 或 .cpp,VSCode 会自动识别并启用对应语言的扩展:

3.3. 自动安装扩展
稍等,右下角提示安装推荐的扩展包:

——接受,等扩展安装完毕,然后【重新运行 VSCode】——关闭,再运行。
3.4. 编写代码
重新运行后,在右侧编辑区域编写代码并保存(按 Ctrl + S),粘贴下方 程序员打开数字世界的第一个魔法口令:
#include <stdio.h>
void main() {
printf("Hello World!");
}3.5. 运行代码
点击编辑区域右上角类似 播放 按钮,运行和调试:

3.6. 自动配置 C/C++ 环境
VSCode 会自动提示配置编译器,选中默认项:
——VSCode 已经识别到之前安装并在 Path 环境变量配置过的 gcc.exe:
——这里发现 之前自动装好扩展必须重启一下 VSCode ,否则 VSCode 经常无法自动识别 gcc

关闭右下角的提示(来源为
CMake Tools的提示——短期内用不上CMake,有个印象就好):
3.7. 自动产生任务配置文件
左侧资源管理器看到多了一个文件夹、两个文件:
.vscode:VSCode自动创建的用于存放配置文件的文件夹;
tasks.json:负责编译代码为可执行的exe文件的配置;——正是其它教程需要手工配置的文件之一,这里自动生成了,以后再深入学习;
helloWorld.exe:gcc对你的代码进行编译生成的可执行文件,调试、运行都离不开它。
3.8. 查看运行结果
在底部输出窗口能看到类似下面的运行结果:

3.9. 运行和调试
下拉菜单中选 运行,VSCode 会记住上一次的操作,以后不用每次都按旁边的下拉菜单来选择。
——运行和调试有什么区别?后续调试代码会用到:

已经了解调试的同学,可以加断点调试测试一下配置是否正常,代码会停在加了断点这一行,并等待处理:

4. 完事,几个常用扩展
这时候装几个常用扩展(按照前面装语言包的方式):
必装扩展 :
Error Lens——在出错的代码旁显示错误信息, 方便定位错误位置 (默认在终端输出窗口)。 下面的例子中故意制造了一个错误:
必装扩展 :
Error Gutters——配合上一个扩展,在警告、出错的代码前显示图标:
推荐扩展:
C/C++ Compile Run——编译、调试和运行
C/C++代码的帮助扩展,自动配置已经安装的gcc/g++/gdb——快捷键:
F5编译、调试运行,F6编译、运行——其实有它,入门学习基本够用了,可以跳过以上所有步骤。
推荐扩展:
Code Runner(注意,不是另外一个C/C++ Runner)——同上,二选一即可——快捷键:
Ctrl + Alt + N这个扩展支持更多的语言,如
Java、C#、Python等等,因为同时在学习Python所以装了这个扩展:
可选扩展:
Indent-Rainbow——用彩虹色显示缩进,方便对齐——在Python中非常有用; ——类似的,还有彩虹括号、彩虹花括号,已经内置了:
更多更多,层出不穷,眼花缭乱,还是缓一缓,专注于【先入门】吧。
5. 常见问题:中文输出乱码
假如给前面的代码的输出内容加上中文:
#include <stdio.h>
void main() {
printf("Hello World! 你好,我来了。");
}运行,查看下方输出内容中出现看不懂的乱字符,俗称乱码,其实是终端环境没能正常识别字符集的问题:

各种教程中推荐的解决方法有三种,都没有真正理解乱码的原因,都不是正确方法:
改变代码文件的字符集设置——不妥,UTF-8 通用性更好;
改变
VSCode的集成终端字符集设置——在其它电脑上运行需要重新配置;改变 Windows 环境的字符集设置——影响到系统中所有应用,可能有不确定的副作用。
前几种方法都是改变外部环境设置,还可能会干扰其它功能,所以推荐龙爸的独家方法:
代码中进行处理——真正从根源解决问题,与环境设置无关。
#include <stdio.h>
#include <stdlib.h>
int main() {
// 设置控制台输出为UTF-8编码,以支持中文输出
system("chcp 65001>nul");
printf("Hello World! 你好,我来了。");
return 0;
}
新增的两行代码中:chcp 65001 表示把系统的字符集切换为 65001 (UTF-8),
——与 VSCode 编辑代码时的默认字符集一致:

所以,如果你的编辑环境的编码为 GB2312 的话,代码中的 65001 改为 936也能正常输出。
——最好保持 UTF-8 适用性更广泛。
——以后你会学习到字符集相关的知识,这是很容易出现混乱的若干历史包袱之一,属于 程序员必经心魔 。

Windows系统中默认也是936, 很多教程教你去修改Windows系统的默认字符集为Unicode, ——显然,比更改VSCode终端环境参数的影响更大,会带来更多无法预料的麻烦。
知道背后的原理,以后能少很多麻烦,或者遇到问题知道原因
这也是很多教程中存在问题的原因: ——不是确切的知道为什么、不知道有没有更好的解决方案。
6. 大功告成,新手,接法宝吧
目前已经能让你在新手村附近打怪了,后续还需要进一步了解和熟悉以下方面的配置:
c_cpp_properties.json配置C/C++语言的基本设置launch.json配置调试操作相关的设置tasks.json配置编译相关的设置
——具体细节可参考其它教程,有很多很多。
有了 Scoop,先顺手装两个强大的工具:
# 添加一个官方软件包仓库
scoop bucket add extras
# 安装两个非常强大的工具
scoop install everything ffmpegEverything,顾名思义,就是 everything 的意思,非常方便
6.1. 任务一:搜索了解一下 Everything
——它知道你的电脑上的每个文件/文件夹 everything 在哪个犄角旮旯里,快给它设置个快捷键吧。
6.2. 任务二:搜索了解一下 ffmpeg
——最牛的跨平台音视频全方位解决方案,以后你将发现它就像 原力 一样,无处不在。
——几乎所有的音视频转码、编辑工具,其实都是调用 ffmpeg 实现的。