go build 生成不同OS下的可執(zhí)行文件

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容