gpt4 book ai didi

node.js - 在 node.js 中运行 .wasm 文件

转载 作者:行者123 更新时间:2023-12-02 15:26:32 24 4
gpt4 key购买 nike

我读过很多关于在 Node.js 中运行 wasm 文件的文章。每当我测试代码时,它都会抛出此错误

[TypeError: WebAssembly.instantiate(): Import #0 module="wasi_snapshot_preview1" error: module is not an object or function]

然后它不会在结果中显示任何内容。我正在使用这段代码:

const sp = {
env: {
memoryBase: 0,
tableBase: 0,
memory: new WebAssembly.Memory({
initial: 256
}),
table: new WebAssembly.Table({
initial: 0,
element: 'anyfunc'
})
},
imports: {
imported_func: arg => {
console.log(arg);
}
}
}

const fs = require('fs')
, wasm = WebAssembly.instantiate(new Uint8Array(fs.readFileSync('./test.wasm')), sp)
.then(result => console.log(result));

此代码引发上述错误。

我是不是做错了什么?

解决方案:

我的代码没有任何问题,而是我编译代码的方式有问题。而不是使用

em++ test.cpp -o test.wasm

我应该使用:

em++ -O1 test.cpp -o test.wasm -s WASM=1

最佳答案

test.wasm 更改为 test.js 应该也可以工作:

em++ -O1 test.cpp -o test.js -s WASM=1

使用 .wasm 作为输出类型或 -s STANDALONE_WASM 需要运行时支持 wasi_snapshot_preview1

关于node.js - 在 node.js 中运行 .wasm 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59726374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com