editor php Yuzai menegaskan bahawa baru-baru ini beberapa pengguna melaporkan masalah tidak dapat menjalankan aplikasi Golang pada mesin 32-bit. Selepas penyiasatan, didapati bahawa ini adalah kerana bahasa Golang pada asalnya direka untuk berjalan pada sistem 64-bit, dan ruang alamat sistem 32-bit adalah terhad dan tidak dapat memenuhi keperluan Golang. Oleh itu, jika anda ingin menjalankan aplikasi Golang pada mesin 32-bit, anda mungkin ingin mempertimbangkan untuk menaik taraf kepada sistem 64-bit, atau menggunakan bahasa pengaturcaraan lain yang sesuai untuk sistem 32-bit untuk membangunkan aplikasi.
Saya membina Golang sebagai versi 32-bit pada mesin 64-bit. Walau bagaimanapun, ia mempunyai masalah, apabila saya membina seperti ini, ia mendapat "kernel32.dll" dalam folder SysWOW64, tetapi apabila saya menjalankannya dalam mesin 32-bit (Windows 7). Ia tidak mempunyai folder SysWOW64, jadi ia mengembalikan ralat:
致命错误:找不到kernel32.dll
Ini adalah arahan go build saya:
go build -ldflags "-s -w"
Ini adalah persekitaran saya:
set GO111MODULE= set GOARCH=386 set GOBIN= set GOCACHE=C:\Users\name\AppData\Local\go-build set GOENV=C:\Users\name\AppData\Roaming\go\env set GOEXE=.exe set GOEXPERIMENT= set GOFLAGS= set GOHOSTARCH=amd64 set GOHOSTOS=windows set GOINSECURE= set GOMODCACHE=C:\Users\name\go\pkg\mod set GONOPROXY= set GONOSUMDB= set GOOS=windows set GOPATH=C:\Users\name\go set GOPRIVATE= set GOPROXY=https://proxy.golang.org,direct set GOROOT=C:\Program Files\Go set GOSUMDB=sum.golang.org set GOTMPDIR= set GOTOOLCHAIN=auto set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64 set GOVCS= set GOVERSION=go1.21.1 set GCCGO=gccgo set GO386=sse2 set AR=ar set CC=gcc set CXX=g++ set CGO_ENABLED=1 set GOMOD=D:\Center\go.mod set GOWORK= set CGO_CFLAGS=-O2 -g set CGO_CPPFLAGS= set CGO_CXXFLAGS=-O2 -g set CGO_FFLAGS=-O2 -g set CGO_LDFLAGS=-O2 -MT set PKG_CONFIG=pkg-config set GOGCCFLAGS=-m32 -mthreads -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\name\AppData\Local\Temp\go-build581533674=/tmp/go-build -gno-record-gcc-switches
Bolehkah sesiapa mencadangkan saya penyelesaian? Penyelesaian
Jadi saya rasa dalam kes anda, anda perlu membinasalin SysWOW64
dan bina kod anda di sana. Sudah tentu, anda perlu menurun tarafpustaka tertentu agar sepadan dengan sistem pengendalian, yang kadangkala boleh mencabar.
Atas ialah kandungan terperinci Tidak dapat menjalankan aplikasi Golang pada mesin 32-bit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!