gitea为例
make编译
CGO_ENABLED=0 GOOS=linux GOARCH=386 TAGS="bindata" make build
go build编译
CGO_ENABLED=0 GOOS=linux GOARCH=386 TAGS="bindata" go build -o gitea main.go
参数
CGO_ENABLED
Cgo不支持交叉编译。默认情况下,CGO_ENABLED=1,代表着启用 Cgo 进行编译。我们如果将 CGO_ENABLED 置为 0,那么就可以关闭 Cgo。
GOOS
可执行程序运行操作系统,支持 darwin、freebsd、linux、windows
GOOS | 举例 | 说明 |
---|---|---|
alx | AIX 5L 5.3 | IBM操作系统 |
android | 安卓Android | |
darwin | Mac Os X | 苹果操作系统 |
dragonfly | DragonFly BSD | DragonFly BSD |
freebsd | FreeBSD | FreeBSD |
hurd | GNU Hurd | GNU操作系统 |
illumos | illumos | OpenSolaris |
ios | ios | 苹果手机 |
js | chrome | 浏览器 |
linux | ubuntu | 通用linux |
nacl | NaCl | NaCl |
netbsd | NetBSD | NetBSD |
openbsd | OpenBSD | OpenBSD |
plan9 | Plan 9 | 贝尔实验室 |
solaris | Solaris | Sun操作系统 |
windows | Windows10 | 微软操作系统 |
zos | z/OS | IBM Z架构系统 |
GOARCH
可执行程序操作系统构架,包括 386,amd64,arm
Go支持OS和平台列表
$ go tool dist list
aix/ppc64
android/386
android/amd64
android/arm
android/arm64
darwin/amd64
darwin/arm64
dragonfly/amd64
freebsd/386
freebsd/amd64
freebsd/arm
freebsd/arm64
illumos/amd64
ios/amd64
ios/arm64
js/wasm
linux/386
linux/amd64
linux/arm
linux/arm64
linux/mips
linux/mips64
linux/mips64le
linux/mipsle
linux/ppc64
linux/ppc64le
linux/riscv64
linux/s390x
netbsd/386
netbsd/amd64
netbsd/arm
netbsd/arm64
openbsd/386
openbsd/amd64
openbsd/arm
openbsd/arm64
openbsd/mips64
plan9/386
plan9/amd64
plan9/arm
solaris/amd64
windows/386
windows/amd64
windows/arm
windows/arm64