Rumah > pembangunan bahagian belakang > Golang > Tidak dapat menjalankan aplikasi Golang pada mesin 32-bit

Tidak dapat menjalankan aplikasi Golang pada mesin 32-bit

PHPz
Lepaskan: 2024-02-12 19:10:08
ke hadapan
1070 orang telah melayarinya

Tidak dapat menjalankan aplikasi Golang pada mesin 32-bit

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.

Kandungan soalan

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"
Salin selepas log masuk

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
Salin selepas log masuk

Bolehkah sesiapa mencadangkan saya penyelesaian? Penyelesaian

Jadi saya rasa dalam kes anda, anda perlu membina

mesin 32-bit

(atau mesin maya), kemudian

salin 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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan