【发布时间】:2020-01-25 14:02:08
【问题描述】:
在过去的几个月里,我尝试创建一个 Web 程序集 hello world,但没有成功。我已经阅读了 7 个教程,观看了 4 个 YouTube 视频,并阅读了大量关于 WASM 和 emscripten 的文档。出于这个问题的目的,我将专注于emscripten documentation tutorial,因为希望大多数人都熟悉它。根据我的教程:
hello_world.c
#include <stdio.h>
int main() {
printf("hello world\n");
return 0;
}
编译:
./emcc tests/hello_world.c
并成功测试
node a.out.js
我还生成了一个 html 输出:
./emcc tests/hello_world.c -o hello.html
并且(如果我使用 Python 服务)这已在浏览器中成功测试。
至此,本教程似乎认为它已经完成,并转向更高级的主题,例如文件处理。但这不可能是正确的:生成的 html 长度超过 1000 行,显然会导致数百个副作用(预期的行为只是一个空白页面,如果您检查元素,应该显示一个控制台日志“hello world”。但是此 html 文件呈现一个完整的网页)。
我想要一个 hello world 示例的原因是为了测试 wasm 是否正常工作,然后能够开始修改和扩展示例。如果我想修改这个网页,我不知道从这个庞大的 HTML 文件的哪里开始。
编辑:也许我应该补充一下,我知道还生成了一个大的 js '胶水代码'文件。如果有办法钩入胶水,我对此非常满意。我目前不知道这个 html 或其中的脚本是如何与 js 胶水交互的。
所以我的问题是,我需要做什么才能拥有一个包含几行 html 的 HTML 文件和一个调用 main 函数的小内联脚本,然后将 hello world 记录到控制台?谢谢。
【问题讨论】:
-
Wasm 当然是在网页加载的浏览器中运行的。在许多应用程序中,网页会显示与应用程序相关的内容。在简单的教程中,页面可以是空白的。没错,wasm 工具基本上是丑陋的。
-
我想要的当然是让网页显示与我定义的应用程序相关的内容。通常,扩展一个最小的示例比编辑一个完整的现有应用程序更容易。您是否知道任何此类最新且有效的最小教程?
标签: c webassembly emscripten