用 vscode + WSL 方案做操作系统实验

用 vscode + WSL 方案做操作系统实验
hezhNote
本文建立在 WSL 的基础之上。
为何如此
-
这几个实验的部分小任务无法在 Windows 环境下编译,有些头文件是 Linux 专属的,比如 <unistd.h>, <sys/types.h>, <sys/stat.h>, <sys/ipc.h>, <sys/shm.h> , mkfifo(), shmget(), shmat(), shmdt(), shmctl() …
-
若要按老师说要在 VMware 虚拟机里安装 vc++ 6.0 ?太麻烦了,既要重新认识/熟悉非主流软件,而且在 VM 里安装软件也很麻烦。
-
按照 AI 和论坛大佬们的说法,vscode + wsl 应该是最优解。
-
为什么要装编译器?我在 dev.6.7.5 或者 VS 里使用也没见需要安装?这是因为 dev.6.7.5 或者 VS 自带了编译器。dev 之所以轻量,可以理解为只是给 GCC/G++ 套了个可视化窗口。
-
vscode + wsl 方案的好处:一是提供了 Linux 环境,二是安装 c/c++ 编译器的过程极其简单,一条命令即可。
安装 c/c++ 编译器
先在 wsl 执行一下的命令查看是否存在编译器,有版本号输出即可。(注意不是在 cmd 或者 PoweShell 里执行)
1 | |
若不存在编译器,执行以下命令。build-essential 这个包会一次性装好 gcc、g++、make 这些常用编译工具。
1 | |
再次验证 gcc --version、g++ --version 并且退出vscode重新进去即可。
此外,若不是 Debin 系的发行版,包管理器的命令是不一样的,这里也列出:
| 发行版 | 包管理器 | 安装 gcc/g++ 命令 |
|---|---|---|
| Ubuntu / Debian | apt |
sudo apt install build-essential |
| Arch Linux | pacman |
sudo pacman -S base-devel gcc |
| Fedora | dnf |
sudo dnf install gcc gcc-c++ make |
| CentOS / Rocky Linux | yum / dnf |
sudo yum install gcc gcc-c++ make |
| openSUSE | zypper |
sudo zypper install gcc gcc-c++ make |
| Alpine Linux | apk |
sudo apk add build-base |
编译与执行
1 | |
其中的 -o 是 output 的缩写,作用是:指定编译后生成的可执行文件的名称。如果不指定 -o 参数,编译产物的名称默认是 a.out 。
编译完成后用 ./xxx 执行,xxx 是 -o 参数后面的名字。
一定要先在 vscode 的终端里用 cd 命令切换到你存放文件的目录下,否则会报错:
Warning
fatal error: xxx.cpp: No such file or directory
要么就在编译时指定正确的路径,例如:如果现在在家目录,而c/c++ 文件都放在了家目录下的 作业 文件夹里,则:
编译:gcc ./作业/xxx.c -o xxx
执行:./作业/xxx
Tip
- 家目录指:
/home/<用户名>,识别符是~,通过cd ~可快速回家。 - 跟 Windows 的 C 盘下的
用户\<用户名>是类似意思。








