أخطاء في تجميع Golang إلى Wasm مع Wasmtime وWasm3
تجميع كود Golang إلى WebAssembly (Wasm) باستخدام GOOS=js GOARCH=wasm go قد يؤدي build -o main.wasm إلى حدوث أخطاء عند التنفيذ باستخدام Wasmtime أو Wasm3. دعونا نتحقق من الأخطاء ونستكشف الحلول الممكنة.
خطأ 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
يشير الخطأ إلى أن Wasmtime يواجه استيرادًا لم يتم حله (go::debug) أثناء وقت التشغيل، مما يشير إلى أن وحدة Wasm المترجمة تفتقر إلى تعريف لهذا import.
خطأ Wasm3:
خطأ: فشل البحث عن الوظيفة ('_start')Error: function lookup failed ('_start')واجه Wasm3 خطأ أثناء البحث عن الوظيفة، مما يشير إلى أن وحدة Wasm لا تحدد وظيفة نقطة الإدخال (_start).
الحل:
وفقًا للرد المقدم، فإن النهج الأصلي له قيود عند تجميع Golang إلى Wasm خارج المتصفح. يتم اقتراح الخيارات التالية لحل الأخطاء:
العقدة Wasm_exec.js الرئيسية .wasm
node wasm_exec.js main.wasm
tinygo build -target=wasi -o main.wasm main.go
tinygo build -target=wasi -o main.wasm main.go
GOOS=wasip1 GOARCH=wasm gotip build -o main.wasm
GOOS=wasip1 GOARCH=wasm gotip build -o main.wasm
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3