>백엔드 개발 >Golang >WebAssembly(Wasm)로 이동하여 컴파일할 때 오류를 해결하는 방법

WebAssembly(Wasm)로 이동하여 컴파일할 때 오류를 해결하는 방법

Barbara Streisand
Barbara Streisand원래의
2024-10-23 22:26:30871검색

How to Resolve Errors When Compiling Go to WebAssembly (Wasm)

Golang을 WebAssembly(Wasm)로 컴파일

GOOS=js GOARCH=wasm go build 명령을 사용하여 Go 코드를 Wasm으로 컴파일할 때 - o main.wasm, Wasmtime 또는 Wasm3을 실행하는 동안 오류가 발생할 수 있습니다.

오류 및 해결 방법

  • Wasmtime 오류: 알 수 없음 가져오기: 이동: :debug

이 오류는 go::debug 가져오기가 정의되지 않았음을 나타냅니다. Go 컴파일러에서 생성된 main.wasm 파일은 wasm_exec.js shim과 함께 사용하기 위한 것입니다. 이 문제를 해결하려면 다음 명령과 함께 Node.js를 사용하세요.

<code class="sh">node wasm_exec.js main.wasm</code>
  • Wasmtime 오류: 함수 조회 실패('_start')

이 오류는 Wasm3을 사용할 때 발생합니다. 대신 다음 명령을 사용하여 WASI(WebAssembly System Interface)를 지원하는 Tinygo로 컴파일해 보세요.

<code class="sh">tinygo build -target=wasi -o main.wasm main.go</code>
  • Bleeding-edge option

Go는 브라우저 외부에서 Wasm에 대한 최첨단 지원을 제공합니다. 이를 활용하려면 다음 단계를 사용하여 소스에서 Go를 컴파일하세요.

  1. 다음을 사용하여 소스에서 최신 Go 릴리스를 설치하세요.
<code class="sh">go install golang.org/dl/gotip@latest
gotip download</code>
  1. Go 코드 빌드 with:
<code class="sh">GOOS=wasip1 GOARCH=wasm gotip build -o main.wasm</code>

이 접근 방식을 사용하면 추가 수정 없이 Wasmtime으로 프로그램을 실행할 수 있습니다.

위 내용은 WebAssembly(Wasm)로 이동하여 컴파일할 때 오류를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.