Erreurs lors de la compilation de Golang vers Wasm avec Wasmtime et Wasm3
Compilation du code Golang vers WebAssembly (Wasm) à l'aide de GOOS=js GOARCH=wasm go build -o main.wasm peut entraîner des erreurs lors de l'exécution avec Wasmtime ou Wasm3. Examinons les erreurs et explorons les solutions possibles.
Erreur 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
L'erreur indique que Wasmtime rencontre une importation non résolue (go::debug) pendant l'exécution, suggérant que le module Wasm compilé n'a pas de définition pour cela import.
Erreur Wasm3 :
Error: function lookup failed ('_start')
Wasm3 rencontre une erreur lors de la recherche de fonction, suggérant que le module Wasm ne définit pas de fonction de point d'entrée (_start).
Solution :
Selon la réponse fournie, l'approche originale présente des limites lors de la compilation de Golang vers Wasm en dehors du navigateur. Les options suivantes sont suggérées pour résoudre les erreurs :
Utilisez Node.js avec la cale wasm_exec.js :
node wasm_exec.js main.wasm
Cela permet une exécution en dehors du navigateur environnement.
Compilez avec le support TinyGo et Wasi :
tinygo build -target=wasi -o main.wasm main.go
TinyGo fournit un support pour la compilation vers Wasm avec Wasi, qui devrait fonctionner avec Wasmtime.
Compilation expérimentale de Golang avec prise en charge de Wasm :
GOOS=wasip1 GOARCH=wasm gotip build -o main.wasm
Cela nécessite de compiler Go à partir des sources et d'activer les dernières fonctionnalités expérimentales, mais devrait permettre une exécution directe avec Wasmtime.
Pour ces erreurs spécifiques, il est suggéré d'essayer l'option 1 (en utilisant Node.js avec wasm_exec.js) ou l'option 2 (compilation avec le support TinyGo et Wasi) si vous êtes en cours d'exécution. un fonctionnement autonome avec Wasmtime est souhaité.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3