本文是什么:本文旨在帮助新手程序员配好一个最简单的环境。实现最简单的三个动作:写程序 - 编译 - 运行。内容具有很强的倾向性,夹杂较多作者私货和喜好,如果有建议欢迎讨论。
本文不是什么:不会写这三个之外的任何 VSCode 的功能(包括使用 VSCode 自带的运行和 debug 工具),如有需要请参考 VSCode 官方文档或者网上其他教程。
为什么要写:刚开始写程序的人,面对琳琅满目的 IDE 和教程往往头非常大。实际上一开始 IDE 的各种功能反而会分散初学者的注意力。IDE 就像是商航大客机,有复杂的操控和面板,自动化飞行等功能;刚学开飞机的人需要的不是这个,而是一架操作直观简单的教练机。
我们的教练机就是用 VSCode 做文本编辑,用 Linux 自带的 GNU Compiler 编译,用命令行运行。新手对编辑器核心的需求实际上只有三个:语法高亮,自动缩进和代码补全,其他东西都可以等熟悉了之后再配置。
由上原因写此文,描述从创建一个代码文件到运行的整体流程。希望能帮助大家。
-1.准备
安装 VSCode. 安装的时候记得勾选添加到环境变量。
另外推荐找时间,学一下 Vim 或者 Emacs 当中的一个。他们俩分别是编辑器的神和神的编辑器,两大阵营的战争腥风血雨,从上古(误)持续至今。感兴趣的童鞋可以搜索一下 Editor War. 我们现在就先远离战场,在平静的 VSCode 阵营安顿下来,专注于自己的代码上就行了。
(以下只有 Windows 需要看)
- 必装 WSL,全称是Windows Subsystem for Linux. 商店搜索一下,装个 Ubuntu 或者 Fedora。不要装啥 Mingw, Cygwin 了,两个都是移植,WSL 是如假包换的 Linux(这段可能不是非常准确。反正装 WSL 就对了
Developing in the Windows Subsystem for Linux with Visual Studio Code
2. 安装VSCode 的 Remote Development 插件
0.创建程序文件
打开 VSCode. (Windows: 按 Ctrl + Shift + P
打开面板,输入Remote-WSL: New Window
,左下角的 WSL 即代表打开成功)
点击 File - Open Folder
, Windows 多点一个 show local
,找到喜欢的目录,建立一个文件夹放你的代码。在文件夹下创建一个叫 hello.cpp
的文件。VSCode 应该会自动识别这是 C/C++ 的代码,弹出一个安装插件的提示,点击 install 开始装一大堆插件。
1. 写程序
来写一个最简单的程序,VSCode 会开始自动补全:
#include <stdio.h>
int main() {
printf("hello worldn");
return 0;
}
点击保存之后就完成了。
2. 编译
点击 Terminal - New Terminal
,打开一个终端界面。
在终端输入 g++ -o hello hello.cpp
。g++
就是我们用来编译 C++ 源代码的编译器程序。
后面的 -o hello
和 hello.cpp
是会传入这个编译器程序的参数。-o hello
是说,把编译好的可执行文件起名叫 hello, hello.cpp
就是我们的源代码啦。
如果一切正常:
回车执行后,左侧多出了一个叫 hello 的文件,编译成功。
实验:如果去掉 -o hello,会发生什么?
编译不通过的世界线:
如果源代码的语法不对,编译器会开始抱怨。红色的 error 提示看上去很吓人,但实际上编译器是你坠吼的朋友。仔细阅读一下错误提示,看看编译器说了什么?
下图错误信息前面的 5:1 ,就是编译器在提醒你:代码的第五行,第一列出错啦。编译器还会给你它的推测,在如下的简单情况中是准的;但是有的时候它的推测也会不准,需要你自行鉴别。
初学者常见的错误——漏掉结尾的分号。
3.执行
输入./hello
来运行我们新鲜出炉的程序。./
的意思是说,要找的程序在当前目录下。
echo $?
的意思是,显示上一个程序的返回值。
然后呢?
恭喜你!你已经成功完成了第一个程序从创建到运行的闭环。接下来你可以:
继续学习 C++ 语言:
推荐两本书。第一本是豆瓣评分 9.4 的神书,Stanley B. Lippman 的 《C++ Primer》,也是本文的参考。
第二本豆瓣评分 8.9,C++ 之父写的《C++程序设计原理与实践》。
另外强烈推荐学习一下用 gdb (另一个命令行软件)debug
学习 Linux 命令行知识:
如何创建文件夹?列出文件夹项目?上面我们用的 echo 是啥意思?学习命令行有助于提升效率,以及理解计算机是如何工作的。推荐一本免费的书:
The Linux Command Linelinuxcommand.org
折腾编辑器:
Emacs 和 Vim 的影响非常深远,以至于现在主流的编辑器一般都支持他们俩的快捷键。在 VSCode 中,搜索对应的名称就能找到插件。
Vim 模式的 Surround 功能,图源Towards Data Science
VSCode 还有很多其他的功能,就留待读者自行发掘了。