Web Assembly-TypeError:尝试获取资源时出现NetworkError

问题描述 投票:0回答:1

我正在尝试将一个简单的Hello World程序从C编译为Web程序集。我一直在遵循MDN(https://developer.mozilla.org/en-US/docs/WebAssembly/C_to_wasm)提供的指南。通过Firefox 71导航到HTML页面后,出现TypeError: “NetworkError when attempting to fetch resource.”错误。

这是C代码:

#include <stdio.h>

int
main(int argc, char *argv[]) {
    printf("hello, world!");
    return 0;
}

以及用于编译的命令:

emcc hello.c -s WASM=1 -o hello.html

我想念什么吗?还有其他人遇到过这个问题吗?预先谢谢你。

c webassembly
1个回答
1
投票

我遇到了同样的问题,并且尝试了一些解决方案,这些似乎可行:

((1)查看emrun Web服务器是否可以通过以下方式运行文件:

emrun --no_browser --port 8080 .

(并在浏览器中打开站点,即localhost:8080

((2)如果不是,请尝试使用此git存储库作为emsdk

git clone https://github.com/juj/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh

然后按照方法(1)尝试emrun

CORS已启用,这阻止了.wasm文件的下载。因此,运行小型服务器来访问html文件是可行的(这包括通过python3 -m http.server的简单python服务器!)

开发人员指南中也提到了这一点:

最后,要实际运行程序,我们不能简单地打开HTMLWeb浏览器中添加文件,因为不支持跨域请求用于文件协议方案。我们必须实际服务输出HTTP上的文件。

您可以从这里参考所有这些信息:https://webassembly.org/getting-started/developers-guide/

© www.soinside.com 2019 - 2024. All rights reserved.