我正在尝试使用WebAssembly运行Rust生成的hello world程序,但是当我尝试加载程序时,我收到一条错误消息。
当我发现我发现的一些教程时,我能够让它运行,问题是他们使用Emscripten创建JavaScript和HTML来加载代码,但是这个JavaScript和HTML包含大量的样板和其他东西。我有点失落,而是想尝试得到一个非常简单的例子,我正在装载自己。
我运行以下命令来编译hello.wasm
echo 'fn main() { println!("Hello, Emscripten!"); }' > hello.rs
rustc --target=wasm32-unknown-emscripten hello.rs
要加载hello.wasm,我从Mozilla WebAssembly文档中获取了示例并试图运行它。
var importObject = {
imports: {
imported_func: function(arg) {
console.log(arg);
}
}
};
fetch('hello.wasm').then(response =>
response.arrayBuffer()
).then(bytes =>
WebAssembly.instantiate(bytes, importObject)
).then(results => {
// Do something with the compiled results!
});
WebAssembly.instantiate
崩溃:
LinkError: Import #0 module="env" error: module is not an object or function
我发现这个错误与错过的东西有关,应该加载样板代码,但通过自动生成的HTML和JavaScript查看我无法确切知道它可能是什么。