使用 GOOS=js GOARCH=wasm go build -o main.wasm 将 Golang 代码编译到 WASM 时,您可能会遇到使用 wasmtime 或 wasm3 执行编译代码时出错。
原因:
此错误表明 main.wasm 文件包含未定义的导入。具体来说,缺少 go::debug 导入。
解决方案:
Golang 编译器生成的 main.wasm 文件旨在与 wasm_exec 一起使用。 js 垫片。使用 wasmtime 执行时,需要使用 node wasm_exec.js main.wasm 代替。
原因:
出现此错误是因为 wasm3 工具在 main.wasm 文件中找不到 _start 函数。
解决方案:
TinyGo 提供 WASI 支持,它允许您将 Golang 代码编译成独立的 WASM 二进制文件,可以直接由 wasm3 执行。使用tinygo build -target=wasi -o main.wasm main.go.
原因:
Golang 的最新未发布版本包括对浏览器之外的 WASM 的实验性支持。解决方案:
注意:此解决方案可能需要强大的计算机来编译。
以上是Go代码编译成WASM时出现执行错误如何解决?的详细内容。更多信息请关注PHP中文网其他相关文章!