Home >Backend Development >Golang >Can Golang Binaries Built on 64-bit Linux Run on Other Ubuntu/Debian Systems?
Portability of Golang Binaries
The portability of Golang binaries depends on several factors, including the operating system and architecture. This article will address the specific questions raised regarding the cross-platform compatibility of Golang binaries compiled on a 64-bit Linux system.
Compatibility with Other Ubuntu/Debian Systems
Yes, a binary installed on an amd64 Ubuntu system will run on any other 64-bit Ubuntu/Debian system. This is a general principle for binaries compiled for 64-bit Linux. However, it's important to note that exceptions can occur with shared libraries, which Go generally does not rely on.
Building X86_64 Binaries for 32-Bit Systems
To build an x86_64 binary that will run on 32-bit Debianlike systems, you can set the GOOS and GOARCH environment variables before building:
GOOS=windows GOARCH=386 go build (or go install or whatever)
This will cause the binary to be compiled for the 32-bit architecture.
Building X86_64 Binaries on Windows for 32-Bit Systems
By default, a binary built on a Windows system will be compiled for the system's architecture. However, you can specify the desired architecture by setting the GOARCH environment variable:
GOARCH=386 go build (or go install or whatever)
This ensures that the binary is built for x86_64 even if your Windows system is 64-bit.
The above is the detailed content of Can Golang Binaries Built on 64-bit Linux Run on Other Ubuntu/Debian Systems?. For more information, please follow other related articles on the PHP Chinese website!