Golang交叉编译

文章目录

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 Google
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
原文链接:,转发请注明来源!
评论已关闭。