Errores en la compilación de Golang a Wasm con Wasmtime y Wasm3
Compilación de código de Golang a WebAssembly (Wasm) usando GOOS=js GOARCH=wasm go build -o main.wasm puede provocar errores al ejecutar con Wasmtime o Wasm3. Investiguemos los errores y exploremos posibles soluciones.
Error de Wasmtime:
Error: failed to run main module `main.wasm` Caused by: 0: failed to instantiate "main.wasm" 1: unknown import: `go::debug` has not been defined
El error indica que Wasmtime encuentra una importación no resuelta (go::debug) durante el tiempo de ejecución, lo que sugiere que el módulo Wasm compilado carece de una definición para esto importar.
Error de Wasm3:
Error: function lookup failed ('_start')
Wasm3 encuentra un error durante la búsqueda de funciones, lo que sugiere que el módulo Wasm no define una función de punto de entrada (_start).
Solución:
Según la respuesta proporcionada, el enfoque original tiene limitaciones al compilar Golang en Wasm fuera del navegador. Se sugieren las siguientes opciones para resolver los errores:
Usar Node.js con la corrección wasm_exec.js:
node wasm_exec.js main.wasm
Esto permite la ejecución fuera del navegador entorno.
Compilar con soporte para TinyGo y Wasi:
tinygo build -target=wasi -o main.wasm main.go
TinyGo brinda soporte para la compilación de Wasm con Wasi, que debería funcionar con Wasmtime.
Compilación experimental de Golang con soporte Wasm:
GOOS=wasip1 GOARCH=wasm gotip build -o main.wasm
Esto requiere compilar Go desde las fuentes y habilitar las funciones experimentales más recientes, pero debería permitir la ejecución directa con Wasmtime.
Para estos errores específicos, se sugiere probar la opción 1 (usando Node.js con wasm_exec.js) o la opción 2 (compilando con soporte para TinyGo y Wasi) si está ejecutando Se desea ser independiente con Wasmtime.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3