Golang跨平台编译

默认go build的可执行文件都是当前操作系统可执行的文件,如果想在mac下编译windows下可执行文件,需要进行如下操作。
只需要指定目标操作系统的平台和处理器架构:

SET CGO_ENABLED=0  // 禁用CGO
SET GOOS=windows  // 目标平台是windows
SET GOARCH=amd64  // 目标处理器架构是amd64

然后在执行go build命令,得到的就是能够在windows平台运行的可执行文件了
Mac下编译Linux和Windows平台64位可执行程序:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Linux下编译Mac和Windows平台64位可执行程序:

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Windows下编译Mac平台64位可执行程序:

SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build

Windows下编译Linux平台下64位可执行程序

SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build

当CGO_ENABLED=1, 进行编译时, 会将文件中引用libc的库(比如常用的net包),以动态链接的方式生成目标文件。
当CGO_ENABLED=0, 进行编译时, 则会把在目标文件中未定义的符号(外部函数)一起链接到可执行文件中。

GOOS值列表

- aix
- android
- darwin
- dragonfly 
- freebsd
- hurd
- illumos
- js
- linux
- nacl
- netbsd
- openbsd
- plan9
- solaris
- windows
- zos

GOARCH值列表

- 386
- amd64
- amd64p32
- arm
- armbe
- arm64
- arm64be
- ppc64
- ppc64le
- mips
- mipsle
- mips64
- mips64le
- mips64p32
- mips64p32le
- ppc
- riscv
- riscv64
- s390
- s390x
- sparc
- sparc64
- wasm

版权声明:
作者:tianya
链接:https://tya.zone/p/106.html
来源:天涯博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
Golang跨平台编译
默认go build的可执行文件都是当前操作系统可执行的文件,如果想在mac下编译windows下可执行文件,需要进行如下操作。 只需要指定目标操作系统的平台和处理器……
<<上一篇
下一篇>>