上QQ阅读APP看书,第一时间看更新
2.3.4 跨平台交叉编译
Go语言支持跨平台交叉编译,可通过go build加选项的方式实现。
在macOS中的语法如下。
//编译Linux可执行二进制文件
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go`
//编译Windows可执行二进制文件
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
在Linux系统中的语法如下。
//编译macOS可执行二进制文件
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
//编译Windows可执行二进制文件
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
在Windows系统中的语法如下。
//编译macOS可执行二进制文件
SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build main.go
//编译Linux可执行二进制文件
SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build main.go
上述文件中涉及的交叉编译参数的含义如下。
● CGO_ENABLED:是否使用cgo编译。0为不使用,1为使用。
● GOOS:目标操作系统的标识。
● GOARCH:目标可执行程序的操作系统架构。arm表示ARM架构,amd64表示64位架构。
注意:虽然可以在Go语言中直接编写C语言代码,但编译器必须支持C语言才行。换句话说,编译环境中也需要安装C编译器。