使用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 进行许可。