Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 从Windows到其他OSs的交叉编译_Go - Fatal编程技术网

Go 从Windows到其他OSs的交叉编译

Go 从Windows到其他OSs的交叉编译,go,Go,我阅读并了解了这项活动,其中提到的行动如下: %env GOOS=darwin GOARCH=386 go build hello.go //或 %env GOOS=linux GOARCH=arm GOARM=7 go构建hello.go //等等 但是在Windows中没有名为env的命令,我得到以下信息: “env”未被识别为内部或外部命令, 可操作的程序或批处理文件。 在windows powershell上,您应该能够执行以下操作: $env:GOOS = "linux" $env:

我阅读并了解了这项活动,其中提到的行动如下:

%env GOOS=darwin GOARCH=386 go build hello.go
//或
%env GOOS=linux GOARCH=arm GOARM=7 go构建hello.go
//等等
但是在Windows中没有名为
env
的命令,我得到以下信息:

“env”未被识别为内部或外部命令,
可操作的程序或批处理文件。

在windows powershell上,您应该能够执行以下操作:

$env:GOOS = "linux"
$env:GOARCH = "arm"
$env:GOARM = "7"
go build hello.go

要查看支持的编译工具:
go-tool-dist-list
交叉编译不使用
cgo
,即不使用任何文件有
导入“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
命令提示符下

set GOOS=darwin
设定目标=amd64
go build-o main.dmg main.go
在Linux或Mac上完成并编译以获得成功

GOOS=windows GOARCH=amd64 go build-o main.exe main.go
交叉编译将以静默方式重建大多数标准库,因此速度相当慢。要加快此过程,您可以在系统上安装交叉编译所需的所有标准软件包,例如,要在Linux/Mac上安装windows-amd64的交叉编译要求,请使用:

GOOS=windows GOARCH=amd64 go安装

与需要在Windows上交叉编译的任何其他操作系统类似,谢谢,我做了以下操作:
$env:GOOS=“darwin”$env:GOARCH=“amd64”go构建分组。go
获得了一个没有扩展名的新文件add
-o grouping.exe
mm
.exe
这不是仅适用于Windows吗?哦,对不起,当您执行
-o
时,由于某种原因,顺序很重要,您必须执行
执行build-o test.dmg分组。执行
不确定,从未执行过,这可能有帮助?