WebC++ — 在浏览器里写、跑、调 C++不需要后端、不需要装编译器、不需要本机 CLI。 打开一个网页版 VS Code,就能写 C++、在真实终端里交互运行、享受完整补全与诊断,还能下断点单步调试——全部跑在浏览器里(WebAssembly)。 适合:竞赛编程(OI/ACM)练题、教学演示、在线判题前端、临时验证一段 C++。 功能
怎么用(三种方式,别混淆)
快速开始
操作
首次运行会下载约 28MB 工具链(clang/lld/sysroot),clangd 首次另需约 27MB;之后走浏览器缓存。 设置(
|
| 键 | 默认 | 说明 |
|---|---|---|
flags |
-std=c++20 -DLOCAL |
传给编译器的参数(clangd 也用同一份) |
opt |
2 |
优化级别 0–3 |
debugInfo |
true |
生成 DWARF(调试与外部工具需要) |
verbose |
false |
终端里显示工具链加载日志 |
lsp |
true |
是否启用 clangd |
已知限制(写前面,省得你踩)
- 单文件模型:一个
.cpp独立编译运行,不做多文件链接、不做 CMake;每个文件一个终端。 - 调试器不执行代码:
std::vector的v[i]能看(按内存布局算),但v.size()、mp.count(x)这类需要"真的调用函数"的表达式求不了值——纯 DWARF 引擎做不到。 - 语言子集:无 C++ 异常、无线程、无宿主系统调用(wasi 限制)。
- 优化等级:调试用
-O0;运行默认-O2,更高级别会让调试信息退化(断点会变少)。 - 浏览器:需要 Chromium 系(Chrome / Edge)。
Ctrl+Shift+B会顶掉内置的 "Run Build Task"。
自托管网页(可选)
扩展只是前端;配套的 VS Code Web 静态站也能自己部署:仓库里 npm run pack 生成 dist-cf/,
wrangler pages deploy dist-cf 一条命令上线(Cloudflare Pages)。
许可证
- 本扩展:AGPL-3.0-or-later(见
LICENSE) - 调试器内核
wdb:AGPL-3.0-or-later;其中的wdb-stub.c带例外条款, 链接进你的程序不会让你的程序变成 AGPL - 第三方组件(LLVM / wasi-sdk / 微软 DWARF 引擎等)见
notices/THIRD-PARTY-NOTICES.md
你的代码归你。 本扩展对编译产物不主张任何权利。
反馈
- 扩展问题:https://github.com/hcz1017/oi-web/issues
- 调试器问题(断点 / 单步 / 变量):https://github.com/hcz1017/wdb/issues