gpt4 book ai didi

node.js - 将 hello world 编译为 wasm 并在 Node 中运行

转载 作者:太空宇宙 更新时间:2023-11-03 23:27:00 25 4
gpt4 key购买 nike

我正在尝试在 Node.js 中运行 WebAssembly 模块,但收到 Wasm 解码失败结果。我认为我的问题是将 Node Buffer 转换为 ArrayBuffer 。这是我适用的代码:

fs.readFileAsync( WASM_PATH )
.then( buf => buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength) )
.then( arrayBuffer => Wasm.instantiateModule(arrayBuffer) )
.then( results => console.log(results.instance) )
.catch( err => console.error(err) );

我收到此错误:

(relevant details) 

Wasm decoding failedResult = expected version 0c 00 00 00, found 01 00 00 00 @+4

当我使用 emcc hello_world.c -s WASM=1 -o hello.html 时,我可以加载该模块并在浏览器中运行它。所以,我很确定这是我的问题或者可能是一些兼容性问题。提前致谢。

最佳答案

您的 Node 版本使用 V8 的较旧的 MVP 版本,预计版本为 0xC。您的工具链发出 now-stable MVP version 0x1 .

Node roughly follows Chrome releases ,和Chrome 57添加了对 MVP WebAssembly 的支持。该页面显示 Chrome 57 的 V8 版本是 5.7.492.65。

因此 Node 中对 MVP 的支持迫在眉睫。

或者,您可以使用较旧的 Emscripten 工具链。不过它会很旧:0xd 是 MVP 之前的版本(并且 0xd 实际上与 MVP 相同,对版本进行取模)。

关于node.js - 将 hello world 编译为 wasm 并在 Node 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42852594/

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