C语言 Web 程序集 - 类型错误:尝试获取资源时出现网络错误



我正在尝试将一个简单的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

我错过了什么吗?还有其他人遇到过这个问题吗?提前谢谢你。

我遇到了同样的问题,我尝试了一些解决方案,这些似乎有效:

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

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服务器!

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

最后,要实际运行程序,我们不能简单地打开HTML 文件,因为不支持跨源请求 对于文件协议方案。我们必须实际为输出服务 文件通过 HTTP。

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

相关内容

  • 没有找到相关文章

最新更新