使用Emscripten编译WASM供NodeJS调用

配置 emscripten
找到一个空文件夹,运行下面的命令安装 emscripten
1 | # Get the emsdk repo |
安装完成后需要把 emscripten 安装 根目录 和 根目录下的 upstream/emscripten 添加到环境变量,方便全局调用
Node.js 调用 WASM
编写 c++
1 |
|
如果源码中引入头文件语法报错,需要在 .vscode 中修改 c_cpp_properties.json 文件内容如下
加上”D:\Emscripten\emsdk\upstream\emscripten\system\include\**”
*!!注意!!*
**这里的 *c_cpp_properties.json* 是基于 MinGW 设置的语法检测,如果没有安装 MinGW,可以无视语法检测,后面一样可以编译成功**
1 | { |
编译 c++
!!注意!!
emscripten 后台会使用 clang++ 来编译 c++程序,如果源码里面包含了 MinGW 提供的头文件,将会有兼容性问题,导致编译无法通过
1 | emsdk_env && emcc .\src\main.cpp -o .\wasm\wasm_api.js -s WASM=1 |
调用 c++
1 | const wasm_api = require("../wasm/wasm_api.js"); |
参考
Emscripten 官网
阮一峰 asm.js 和 Emscripten 入门教程
VSCode + WebAssembly 简易工程化配置
Node.js 使用 WebAssembly
解决“……called before runtime initialization”问题
EMSCRIPTEN_KEEPALIVE 的作用
- 标题: 使用Emscripten编译WASM供NodeJS调用
- 作者: 木头的喵喵拖孩
- 创建于: 2023-11-03 09:17:28
- 更新于: 2024-05-21 10:56:15
- 链接: https://blog.xx-xx.top/2023/11/03/使用Emscripten编译WASM供NodeJS调用/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。