适用对象:在 Windows 10/11 上完成 DSA Mastery 本地 C++ Lab 的学生。
0. 原生自举安装(推荐)
如果希望一次完成 Git、Node.js、固定版本 pnpm、MSVC Build Tools、(按选择需要的)CMake、仓库依赖和 Lab 冒烟验证,直接运行仓库自带的 PowerShell 启动器即可。启动器优先使用 Windows 自带的 winget,不会把随 Visual Studio 版本变化的 cl.exe 目录永久写进 PATH;运行 Lab 时会通过 vswhere.exe 和 VsDevCmd.bat 自动导入完整 MSVC 开发环境。
已经有仓库
在 PowerShell 中直接粘贴下面两行:
cd "$HOME\code\DSA-Mastery"
powershell.exe -ExecutionPolicy Bypass -File .\scripts\bootstrap\bootstrap-windows.ps1如果仓库在其他位置,只需要把第一行换成实际目录,例如 cd "$HOME\DSA-Mastery"。
还没有仓库
如果 Git 和仓库都还没有准备好,先下载启动器,再由它准备工具并 clone 仓库:
$bootstrap = Join-Path $env:TEMP "dsa-mastery-bootstrap.ps1"
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/AzenAnn/DSA-Mastery/main/scripts/bootstrap/bootstrap-windows.ps1" -OutFile $bootstrap
powershell.exe -ExecutionPolicy Bypass -File $bootstrap -RepoDir "$HOME\code\DSA-Mastery"如果你已经可以使用 Git,也可以先 clone,再回到上面的“已经有仓库”路径:
New-Item -ItemType Directory -Force "$HOME\code" | Out-Null
git clone https://github.com/AzenAnn/DSA-Mastery.git "$HOME\code\DSA-Mastery"
cd "$HOME\code\DSA-Mastery"
powershell.exe -ExecutionPolicy Bypass -File .\scripts\bootstrap\bootstrap-windows.ps1不带参数运行时会进入交互式选择界面:
# ↑↓ 或 j/k:移动;空格:选择/取消;Enter:开始;q:退出基础运行环境(Git、Node.js、pnpm)是必选项。默认会选择 Program Lab C++ 环境;如果需要 Project Lab,就勾选 Project Lab / CMake;需要图形界面时再勾选 VS Code 和相应扩展。脚本会自动勾选扩展依赖,并根据选择执行对应的环境检查。
菜单中的方案对应:runtime(只准备课程工具)、basic(Program)和 full(Program + Project)。
熟悉命令行后,也可以直接指定方案:
# 只安装并验证 Quiz/Program 所需环境
powershell.exe -ExecutionPolicy Bypass -File .\scripts\bootstrap\bootstrap-windows.ps1 -Profile basic
# 完整课程环境,额外安装并验证 CMake/Project Lab
powershell.exe -ExecutionPolicy Bypass -File .\scripts\bootstrap\bootstrap-windows.ps1 -Profile full常用选项:
# 只读检查,不安装工具、不 clone/pull、不安装依赖、不运行 smoke
powershell.exe -ExecutionPolicy Bypass -File .\scripts\bootstrap\bootstrap-windows.ps1 -CheckOnly -Profile basic -RepoDir "C:\课程项目\DSA-Mastery"
# 跳过 VS Code,或显式安装 VS Code 与课程扩展
powershell.exe -ExecutionPolicy Bypass -File .\scripts\bootstrap\bootstrap-windows.ps1 -Profile full -SkipVscode
powershell.exe -ExecutionPolicy Bypass -File .\scripts\bootstrap\bootstrap-windows.ps1 -Profile full -InstallVscode
# CI/重定向时使用稳定纯文本或 JSON 输出
powershell.exe -ExecutionPolicy Bypass -File .\scripts\bootstrap\bootstrap-windows.ps1 -Profile basic -NonInteractive -Ui plain
powershell.exe -ExecutionPolicy Bypass -File .\scripts\bootstrap\bootstrap-windows.ps1 -Profile basic -NonInteractive -Json支持 TTY 时会显示阶段、状态和整体进度;非 TTY 会自动使用纯文本。安装失败后可以直接重跑,脚本会复用已安装工具和已有仓库。核心失败日志写入 %LOCALAPPDATA%\DSA-Mastery\setup\;-CheckOnly 不创建日志。
首次安装可能需要管理员确认、UAC、系统重启或打开新终端。脚本不会绕过 PowerShell 执行策略、企业设备管理、杀毒软件或代理限制;缺少 winget 时请使用下面的手工章节。仓库有未提交改动时不会静默 pull 或覆盖。
1. 安装 Git
下载地址:Git for Windows 一般X64处理器选图片这个

安装时大部分选项保持默认即可。遇到 PATH 相关选项时,选择:
Add a Git Bash Profile to Windows Terminal
安装完成后打开 PowerShell,执行:
git --version能看到 Git 版本号即可。

2. 安装 Node.js 和 pnpm
下载地址:Node.js 官方下载页

安装完成后,重新打开 PowerShell,执行:
node --version
然后启用 Corepack,并确认 pnpm 版本:
corepack enable
pnpm --version本仓库固定使用 pnpm 11.1.1。如果显示的版本不是 11.1.1,可以执行:
corepack install --global pnpm@11.1.1
pnpm --version如果 PowerShell 提示找不到 pnpm,先关闭当前终端,重新打开一个 PowerShell 再试。

如果提示:“因为在此系统上禁止运行脚本。有关详细信息”,使用管理员打开powershell执行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser然后重试

3. 安装 MSVC Build Tools
下载地址:Visual Studio C++ Build Tools
这里安装的是编译器工具链,不是完整的 Visual Studio IDE。

在 Visual Studio Installer 中选择工作负载:
Desktop development with C++确认右侧组件至少包含:
- MSVC v143 C++ build tools
- Windows 10 SDK 或 Windows 11 SDK
- C++ CMake tools for Windows

安装完成后,从开始菜单打开:
Developer Command Prompt for VS
执行:
cl如果输出中包含 Microsoft C/C++ 编译器版本信息,说明 MSVC 已经可以使用。显示“没有输入文件”之类的提示也不代表安装失败;这里主要检查是否能找到 cl.exe。

手工 fallback:不要添加动态 cl.exe 路径
一键脚本和现有 Lab CLI 会在需要时通过 vswhere.exe 定位 Visual Studio,再调用 VsDevCmd.bat -arch=x64 导入 PATH、INCLUDE、LIB 等变量。因此不建议把类似 14.51.36231 的版本目录永久写入用户 PATH;Visual Studio 更新后该路径会失效,而且单独加入 cl.exe 所在目录并不等于完整 MSVC 环境。
如果学校设备不允许脚本或 winget,仍可按下面的手工方式安装并在 Developer Command Prompt 中运行 Lab。只有在明确知道设备策略要求时,才参考以下动态路径截图:
访问C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC,找到里面包含cl.exe的文件夹,添加path

比如我这里是:C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.51.36231\bin\Hostx64\x64,其中版本号14.51.36231可能会根据你的安装版本发生改变
在搜索打开编辑环境变量

点击高级 环境变量

插入下面两个路径,第一个路径和你前面找的路径一样,点确定返回(一共有三次确定)
C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.51.36231\bin\Hostx64\x64
C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin

之后重新打开新的powershell(或者重启电脑),输入cmake,cl就能显示了

4. 安装 VS Code
建议安装以下扩展:
- C/C++:代码补全、错误提示和调试
- CMake Tools:Project Lab 的 CMake 配置和构建,可选
VS Code 是编辑器,不包含 C++ 编译器。即使已经安装 VS Code,仍然需要安装前面的 MSVC Build Tools。
5. (可选)安装make代替pnpm
- 以管理员身份打开 PowerShell:右键点击“开始”菜单,选择“Windows PowerShell (管理员)”或“终端 (管理员)”。
- 安装 Chocolatey:复制并粘贴以下命令,按回车执行:powershell
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) - 关闭并重新打开管理员 PowerShell 窗口。
- 安装 GNU Make:在管理员 PowerShell 中执行以下命令:powershell安装过程中如果提示确认,输入
choco install makey并按回车。 - 验证安装:关闭并重新打开任意 PowerShell 或 CMD 窗口,输入以下命令,如果显示版本信息则说明安装成功:powershell
make --version

6. 验证完整环境
建议从 developer Command Prompt for VS 或者 Powershell(需加PATH) 打开 VS Code 的终端,依次执行:
git --version
node --version
pnpm --version
cmake --version
cl版本要求:
| 工具 | 要求 |
|---|---|
| Node.js | 22.13.0 或更高 |
| pnpm | 11.1.1 |
| MSVC | Visual Studio 2022,MSVC19.30 或更高 |
| CMake | 3.25 或更高 |

7. 下载仓库
先创建一个放代码仓库的文件夹,再放本实验仓库过来,路径不要包含中文

在希望存放代码的目录打开 PowerShell或者 Developer Command Prompt for VS,执行:
git clone https://github.com/AzenAnn/DSA-Mastery
cd DSA-Mastery
pnpm install --frozen-lockfile也可以通过下载zip来放置,但是下载zip不方便同步最新的仓库
8. 运行第一个 Program Lab
使用Developer Command Prompt for VS来运行
先进入仓库目录,例如仓库放在 C:\Proj\DSA-Mastery
cd C:\Proj\DSA-Mastery
先使用环境检查命令:
pnpm lab:doctor -- labs/chapter-01/exercise/E-01-01-sequential-list-deduplication如果已安装 GNU Make,也可以使用等价命令:
make doctor LAB=labs/chapter-01/exercise/E-01-01-sequential-list-deduplication
如果环境检查通过,可以运行公开测试:
pnpm lab:run -- labs/chapter-01/exercise/E-01-01-sequential-list-deduplication使用 Make 时可以运行:
make run LAB=labs/chapter-01/exercise/E-01-01-sequential-list-deduplication结果中的 AC、PASS 和满分会显示为绿色;未通过状态及未满分的实际得分会醒目标出,Project 的待人工评分会显示 PENDING。颜色只帮助阅读,不改变判定;如果终端不适合显示颜色,可以在命令末尾加 --no-color。没有安装 GNU Make 也不影响使用 pnpm lab:* 入口。

也可以只运行示例测试:
pnpm lab:run -- labs/chapter-01/exercise/E-01-01-sequential-list-deduplication --case 001-sample对应的 Make 命令是:
make run LAB=labs/chapter-01/exercise/E-01-01-sequential-list-deduplication CASE=001-sample
9. 运行 Project Lab
Project Lab 除了 MSVC,还需要 CMake。可以先检查:
pnpm lab:doctor -- labs/chapter-08/project/P-08-01-avl-tree-rotations使用 Make 时可以运行:
make doctor LAB=labs/chapter-08/project/P-08-01-avl-tree-rotationsmake也可以在对应目录内执行:
PS C:\Proj\DSA-Mastery> cd labs/chapter-08/project/P-08-01-avl-tree-rotations
PS C:\Proj\DSA-Mastery\labs\chapter-08\project\P-08-01-avl-tree-rotations> make doctor
PASS 环境检查
平台:win32/x64 · Node v24.19.0
GCC NOT FOUND
Clang NOT FOUND
MSVC AVAILABLE 19.51.36256 (>= 19.30.0)
CMake AVAILABLE 4.3.1 (>= 3.25.0)
GNU Make AVAILABLE 4.4.1 (>= 4.0.0)
GNU Make 为推荐项而非必装依赖;免 Make 入口: pnpm lab:run -- <lab-path>然后运行 Project Lab:
pnpm lab:run -- labs/chapter-08/project/P-08-01-avl-tree-rotations对应的 Make 命令是:
make run LAB=labs/chapter-08/project/P-08-01-avl-tree-rotations也可以运行指定 task 和测试用例:
pnpm lab:run -- labs/chapter-08/project/P-08-01-avl-tree-rotations --task frequency --case weighted使用 Make 时可以运行:
make run LAB=labs/chapter-08/project/P-08-01-avl-tree-rotations TASK=frequency CASE=weighted