我是WebAssembly的新手,正在尝试获取基本示例,但是在Google Chrome浏览器中加载.wasm
文件会返回:
[CompileError:WebAssembly.compile():预期的魔术字00 61 73 6d,找到的30 30 36 31 @ + 0
这是C ++代码:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, World!";
return 0;
}
这是WASM文件:https://drive.google.com/open?id=1nvoxoeZ6TA9OVc4JFHSwGIVxuDHFnIU1
基于documentation,我正在Chrome中执行的代码:
function instantiate(bytes, imports) {
return WebAssembly.compile(bytes).then(function(m) {
return new WebAssembly.Instance(m, imports)
});
}
fetch('simple.wasm').then(function(response) {
return response.arrayBuffer()
})
.then(function(bytes) {
var importObject = {
imports: {
i: function(arg) {
console.log(arg)
}
}
};
return instantiate(bytes, importObject)
})
.then(function(instance) {
return instance.exports.e()
})
问题是您的.wasm
文件为十六进制格式,而不是二进制格式。