Fehler und Lösungen bei der Kompilierung von Golang zu WASM
Kompilieren von Go-Code zu WebAssembly (WASM) mit dem Befehl GOOS=js GOARCH=wasm go build -o main.wasm kann bei der Ausführung mit wasmtime und wasm3 zu Fehlern führen.
Fehler mit 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
Fehler mit wasm3:
Error: function lookup failed ('_start')
Bedeutung der Fehler:
Beheben der Fehler:
Die folgenden Lösungen können diese Fehler beheben:
Node.js mit wasm_exec.js verwenden:
Führen Sie den folgenden Befehl aus:
node wasm_exec.js main.wasm
Kompilieren Sie mit Tinygo (mit WASI-Unterstützung):
Verwenden Sie den folgenden Befehl:
tinygo build -target=wasi -o main.wasm main.go
Dadurch wird ein WASM-Modul erstellt, das mit wasmtime ausgeführt werden kann.
Experimentelle WASM-Unterstützung in Go aktivieren:
Kompilieren Sie Go aus dem Quellcode mit den folgenden Befehlen:
go install golang.org/dl/gotip@latest gotip download
Verwenden Sie dann den folgenden Befehl zum Kompilieren nach WASM:
GOOS=wasip1 GOARCH=wasm gotip build -o main.wasm
Dadurch wird die experimentelle Unterstützung für WASM in Go aktiviert, sodass Sie das Modul direkt mit wasmtime ausführen können.
Das obige ist der detaillierte Inhalt vonWas sind die Ursachen und wie können Golang-to-WASM-Kompilierungsfehler behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!