准备 WSL2 C++ 开发环境
本章在 Windows 上准备后续 C++ 学习所需的 Ubuntu 环境。WSL2 提供运行 Linux 的环境,Ubuntu 是本章使用的 Linux 发行版。完成后,你能在 Ubuntu 中安装并定位 C++ 开发工具。
安装 WSL2 和 Ubuntu
以管理员身份打开 Windows PowerShell,执行下面的命令安装 WSL2 和默认的 Ubuntu 发行版。
PowerShell(管理员)
# 安装 WSL2 和默认的 Ubuntu 发行版
wsl --install命令完成后按提示重启 Windows。重启后从开始菜单首次启动 Ubuntu,并按顺序完成初始化:
- 创建 Linux 用户名和密码。输入密码时终端不会显示字符,这是正常现象。
- 等待初始化完成,直到看到类似
user@host:~$的提示符。 - 从看到该提示符开始,本章后续命令都在这个 Ubuntu 终端中执行。
以后可以从 Windows 开始菜单启动 Ubuntu,也可以在 PowerShell 或 Windows Terminal 中执行 wsl 进入默认发行版。再次看到 Ubuntu 提示符后,继续执行 Ubuntu 命令。
user是 Linux 用户名。host是计算机名。~表示当前用户的主目录。- 末尾的
$表示普通用户提示符。
安装 C++ 工具
先更新软件包索引并升级已安装的软件,再安装后续需要的开发工具。
Ubuntu Bash
# 更新软件包索引
sudo apt update
# 升级已安装的软件包
sudo apt upgrade -y
# 安装 C++ 开发工具
sudo apt install -y clang clangd llvm lldb libc++-dev libc++abi-dev cmake ninja-buildclang 提供编译器,clangd 提供代码提示,lldb 提供调试器,CMake 和 Ninja 负责构建,libc++ 相关包提供 C++ 标准库。
只有默认软件源下载明显过慢时才需要更换来源。更换软件源只影响软件下载位置,不改变编译器和构建工具。可以参考清华 Ubuntu 软件源帮助。
工具检查
执行下面的命令,确认当前 Ubuntu 的 PATH 中可以找到这些工具。
Ubuntu Bash
command -v clang++ clangd lldb cmake ninja输出顺序与命令中的工具顺序一致,实际路径可能因 Ubuntu 环境不同而变化。下面是一个输出示例:
输出示例
/usr/bin/clang++
/usr/bin/clangd
/usr/bin/lldb
/usr/bin/cmake
/usr/bin/ninja
只要每项都输出非空路径,就说明对应命令已经安装并且可以被 Shell 定位,不要求路径与示例完全一致。这项检查不能证明编译、构建、调试或代码提示功能正常。后续 Hello World 程序会通过实际编译和运行验证最小编译链。
常见错误
WSL2 安装失败
如果提示“虚拟机平台未启用”,按下面的顺序检查系统设置,再重新安装。
定位虚拟化设置
在电脑启动设置或任务管理器中确认 CPU 虚拟化已经开启。
启用 WSL 功能
在“启用或关闭 Windows 功能”中启用“虚拟机平台”和“适用于 Linux 的 Windows 子系统”,然后重启 Windows。
验证安装
重新执行
wsl --install,并在重启后确认能够进入 Ubuntu 提示符。
找不到工具
如果某个工具显示 command not found,按下面的顺序恢复到检查步骤。
定位缺失命令
Ubuntu Bash
command -v clang++没有输出时,确认终端位于 Ubuntu,而不是 Windows PowerShell。
重新安装工具
在 Ubuntu 中重新执行本章的
sudo apt install命令。验证命令定位
重新执行
command -v clang++ clangd lldb cmake ninja,每项都应输出非空路径。
自测问题
先不要展开答案,试着自己把回答完整说出来,再展开对照。说不出来的部分,回到对应小节对照正文。
command -v clang++能列出路径,是否就能证明clang++已经可以成功编译程序?为什么?查看答案
不能。它只证明 Shell 能在当前
PATH中找到命令。还需要实际编译并运行一个程序,才能验证编译链的功能。
本章回顾
看到 Ubuntu 提示符,并且 command -v 能列出全部工具路径,说明这些命令已经可以被 Shell 定位。下一章会创建第一个源文件,通过实际编译和运行继续验证 clang++。