golang的一大特性就是跨平臺編譯。
有時候我們會遇到在windows里寫代碼,然后把程序拿到linux里運行的情況??缙脚_編譯的便利性會使你喜歡上golang這個語言。
所謂跨平臺編譯,就是在一個操作系統(tǒng)下生成另一個操作系統(tǒng)下可執(zhí)行的文件。
你只需要在編寫代碼的操作系統(tǒng)下設(shè)置一些參數(shù)即可達(dá)到這個目的。
# Windows下編譯linux的64位可執(zhí)行文件
> SET CGO_ENABLED=0
> SET GOOS=linux
> SET GOARCH=amd64
> go build hello.go
以helloworld作為示例:
package main
import "fmt"
func main() {
fmt.Println("hello world.")
}
go代碼編寫完成后,執(zhí)行go build hello.go,會在目錄下生成hello.exe,執(zhí)行上述命令后,會生成linux下的可執(zhí)行文件。

紅框內(nèi)是linux下的可執(zhí)行文件.png

圖片.png
記錄不同平臺下交叉編譯的命令
# Windows下編譯Mac平臺64位可執(zhí)行程序:
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build xxx.go
# Linux下編譯 Mac 和 Windows 平臺64位可執(zhí)行程序:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build xxx.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build xxx.go
# Mac 下編譯 Linux 和 Windows 平臺 64位 可執(zhí)行程序
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build xxx.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build xxx.go