【发布时间】:2018-10-03 09:20:40
【问题描述】:
我是 emscripten 的新手,发现它很难...我有义务在 Windows 上工作,因为我必须测试我的应用程序的 .exe 版本。我在 Windows 7 上。
我可以编译 wasm 但 javascript 无法读取它。这是我的代码。
C 代码:
char * HelloWorld ()
{
return "Hello World !";
}
Emscripten 命令行:
emcc hello.c -O2 -s ONLY_MY_CODE=1 -s WASM=1 -s SIDE_MODULE=1 -s EXPORTED_FUNCTIONS="['_HelloWorld']" -o hello.wasm
结果:
(module
(type $t0 (func (result i32)))
(type $t1 (func))
(import "env" "memory" (memory $env.memory 256))
(import "env" "memoryBase" (global $env.memoryBase i32))
(func $_HelloWorld (export "_HelloWorld") (type $t0) (result i32)
(get_global $env.memoryBase))
(func $__post_instantiate (export "__post_instantiate") (type $t1)
(set_global $g1
(i32.add
(get_global $env.memoryBase)
(i32.const 16)))
(set_global $g2
(i32.add
(get_global $g1)
(i32.const 5242880))))
(global $g1 (mut i32) (i32.const 0))
(global $g2 (mut i32) (i32.const 0))
(data (get_global $env.memoryBase) "Hello World !"))
Javascript:
importObject = {};
fetch('hello.wasm').then(response =>
response.arrayBuffer()
).then(bytes =>
WebAssembly.instantiate(bytes, importObject)
).then(results => {
console.log("loaded");
});
错误信息:
Uncaught (in promise) TypeError: Import #0 module="env" error: module is not an object or function
Promise.then (async)
(anonymous) @ (index):9
你能告诉我我的代码有什么问题吗?
【问题讨论】:
标签: javascript c emscripten webassembly