WebAssembly 构建
lean-wasm 将 LeanCLR 运行时编译为 WebAssembly,使 .NET 程序集可在浏览器中执行。
源码:leanclr/src/samples/lean-wasm
lean-wasm 概述
构建产物:
| 文件 | 说明 |
|---|---|
lean.js | Emscripten 胶水代码与模块加载器 |
lean.wasm | LeanCLR 运行时 WASM 二进制 |
特性:
- 通过 JavaScript
ccall/cwrap与 WASM 交互 - 支持
ALLOW_MEMORY_GROWTH动态扩容 - 需由 JS 侧提供程序集字节(
load_assembly_file回调)
与 Unity WebGL 的区别
本页描述裸 WASM 嵌入。Unity 项目请使用 leanclr-unity,无需手动构建 lean-wasm。
环境准备
| 工具 | 要求 |
|---|---|
| CMake | 3.15+ |
| Ninja | 推荐 |
| Emscripten SDK | emsdk install latest && emsdk activate latest |
安装 emsdk 后,每次构建前在当前终端激活环境:
emsdk_env.bat
source ./emsdk_env.sh
验证:emcc --version
构建步骤
cd leanclr\src\samples\lean-wasm
build-wasm.bat
脚本执行 emcmake cmake 配置 + emmake cmake --build 编译。
构建输出
build-wasm/bin/
├── lean.js