猿问

从 Windows 交叉编译到其他操作系统

我阅读了这个和这个关于这个活动的内容,并且提到的动作是:


% env GOOS=darwin GOARCH=386 go build hello.go


// or


% env GOOS=linux GOARCH=arm GOARM=7 go build hello.go


// and so on

但是在 Windows 中没有名为 的命令env,我得到了以下内容:


'env' is not recognized as an internal or external command,

operable program or batch file.


互换的青春
浏览 142回答 2
2回答

慕容森

在 windows powershell 上,您应该能够执行以下操作:$env:GOOS = "linux"$env:GOARCH = "arm"$env:GOARM = "7"go build hello.go

白衣非少年

检查支持的编译工具:go tool dist list Cross compile not working with cgo, ie not working with any file hasimport "C"在 Powershell# For ARM$env:GOOS = "linux" $env:GOARCH = "arm" $env:GOARM = "7" go build -o main main.go# For darwin$env:GOOS = "darwin" $env:GOARCH = "amd64" go build -o main.dmg main.go# same for others$env:GOOS = "windows" $env:GOARCH = "amd64" go build -o main.exe main.go在 CMD Command Prompt:set GOOS=darwinset GOARCH=amd64go build -o main.dmg main.go在 Linux 或 Mac 中执行此操作并编译为 WinGOOS=windows GOARCH=amd64 go build -o main.exe main.go交叉编译会默默地重建大部分标准库,因此会很慢。为了加快进程,您可以在系统上安装交叉编译所需的所有标准包,例如在 Linux/Mac 上安装交叉编译windows-amd64使用要求:GOOS=windows GOARCH=amd64 go install对于您需要在 Windows 上交叉编译的任何其他操作系统,类似
随时随地看视频慕课网APP

相关分类

Go
我要回答