Erreurs et solutions de compilation de Golang vers WASM
Compilation du code Go vers WebAssembly (WASM) à l'aide de la commande GOOS=js GOARCH=wasm go build -o main.wasm peut entraîner des erreurs lors de l'exécution avec wasmtime et wasm3.
Erreur avec 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
Erreur avec wasm3 :
Error: function lookup failed ('_start')
Signification des erreurs :
Correction des erreurs :
Les solutions suivantes peuvent résoudre ces erreurs :
Utilisez Node.js avec wasm_exec.js :
Exécutez la commande suivante :
node wasm_exec.js main.wasm
Compilez avec Tinygo (avec support WASI) :
Utilisez la commande suivante :
tinygo build -target=wasi -o main.wasm main.go
Cela créera un module WASM qui peut être exécuté avec wasmtime.
Activer la prise en charge expérimentale de WASM dans Go :
Compilez Go à partir des sources à l'aide des commandes suivantes :
go install golang.org/dl/gotip@latest gotip download
Ensuite, utilisez la commande suivante pour compiler vers WASM :
GOOS=wasip1 GOARCH=wasm gotip build -o main.wasm
Cela permettra une prise en charge expérimentale de WASM dans Go, vous permettant d'exécuter le module directement avec wasmtime.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!