我能够正确编译我的helloWorld.c
文件:
#include <stdio.h>
int main(int argc, char ** argv) {
printf("Hello World\n");
}
使用命令:emcc helloWorld.c -s WASM=1 -o helloWorld.html
但是,当我打开文件helloWorld.html
时,页面上会显示以下错误:
在网络上,我们需要预先加载和设置wasm二进制文件 模块[&#39; wasmBinary&#39]。 emcc.py将在生成时为您执行此操作 HTML(但不是JS)中止(&#34;在网络上,我们需要ism二进制文件 预装并设置在模块[&#39; wasmBinary&#39;]上。 emcc.py会这样做的 你在Error时生成HTML(但不是JS)&#34;) 在jsStackTrace(文件:/// C:/workspaces/wasm/HelloWorld/helloWorld.js:1001:13) at stackTrace(file:/// C:/workspaces/wasm/HelloWorld/helloWorld.js:1018:12) 在中止(文件:/// C:/workspaces/wasm/HelloWorld/helloWorld.js:2414:44) at getBinary(file:/// C:/workspaces/wasm/HelloWorld/helloWorld.js:1528:7) 在file:/// C:/workspaces/wasm/HelloWorld/helloWorld.js:1542:16
如何正确加载我的应用?这有什么不对?
答案 0 :(得分:3)
生成的hmtl
文件旨在从Web服务器提供。如果您检查浏览器控制台,您可能会看到类似这样的错误:
Fetch API无法加载file:/// {您的wasm文件路径}。 URL方案必须 be&#34; http&#34;或&#34; https&#34;对于CORS请求。
要使用本地Web服务器运行您的应用,请使用Emscripten命令emrun
:
emrun helloWorld.html
您可能还会在生产环境中看到此错误,在这种情况下,.wasm
文件的请求可能已返回非200状态代码。