html網(wǎng)站開(kāi)發(fā)實(shí)戰(zhàn)教程seo營(yíng)銷是什么意思
博客原文
文章目錄
- Golang 中的交叉編譯
- 不同操作系統(tǒng)間的編譯
- Linux 下編譯
- windows
- macos
- windows 下編譯
- Linux
- macos
- macos 下編譯
- Linux
- windows
- 不同架構(gòu)下的編譯
- amd64
- x86
- 參考
Golang 中的交叉編譯
在 Golang 中,交叉編譯指的是在同一臺(tái)機(jī)器上生成針對(duì)不同操作系統(tǒng)或硬件架構(gòu)的二進(jìn)制文件。這在開(kāi)發(fā)跨平臺(tái)應(yīng)用或構(gòu)建特定平臺(tái)的發(fā)布版本時(shí)非常有用。
不同操作系統(tǒng)間的編譯
Linux 下編譯
windows
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
macos
$ CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
windows 下編譯
Linux
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
推薦 git 終端:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
macos
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
git 終端:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
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
不同架構(gòu)下的編譯
amd64
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
x86
$ CGO_ENABLED=0 GOOS=linux GOARCH=386 go build main.go
注意不是 x86
上面幾個(gè)示例中各環(huán)境變量的意思如下:
- CGO_ENABLED:CGO_ENABLED=0 意思是禁用 CGO,因?yàn)榻徊婢幾g不能啟用 CGO。
- GOOS:表示目標(biāo)平臺(tái),例如 mac 系統(tǒng)對(duì)應(yīng) darwin,linux 系統(tǒng)對(duì)應(yīng) linux,windows 系統(tǒng)對(duì)應(yīng) windows等。
- GOARCH:目標(biāo)平臺(tái)的架構(gòu),例如 amd64,arm等。
參考
- [Golang 中的交叉編譯詳解 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/649520911#:~:text=Golang 中的交叉編譯在,Golang 中,交叉編譯指的是在同一臺(tái)機(jī)器上生成針對(duì)不同操作系統(tǒng)或硬件架構(gòu)的二進(jìn)制文件。 這在開(kāi)發(fā)跨平臺(tái)應(yīng)用或構(gòu)建特定平臺(tái)的發(fā)布版本時(shí)非常有用。)
- Go 交叉編譯 (跨平臺(tái)編譯) - 知乎 (zhihu.com)