Windows环境编译Go程序部署至Linux的方法咨询
当然可以在Windows下编译Go程序到Linux!
你遇到的问题其实是Windows命令行里环境变量设置的语法问题——你的命令把三个操作写在一行却没有正确分隔,导致GOOS和GOARCH的设置根本没生效,Go还是用默认的Windows目标来编译了。
正确的操作步骤(分两种终端环境):
1. 如果你用的是Windows CMD:
你需要把环境变量设置和编译命令分开执行,或者用&&来串联命令(确保前一个命令执行成功后再执行下一个):
# 方式一:分步执行 set GOOS=linux set GOARCH=amd64 go build filename.go # 方式二:一行串联执行 set GOOS=linux && set GOARCH=amd64 && go build filename.go
2. 如果你用的是PowerShell:
语法和CMD不一样,要使用PowerShell的环境变量赋值方式:
# 方式一:分步执行 $env:GOOS="linux" $env:GOARCH="amd64" go build filename.go # 方式二:一行串联执行 $env:GOOS="linux"; $env:GOARCH="amd64"; go build filename.go
验证结果:
编译完成后,你会得到一个没有.exe后缀的文件,这就是Linux x86_64架构的可执行程序了。你可以把它传到Linux机器上,赋予执行权限(chmod +x filename)后直接运行。
另外补充一下:Go从1.5版本开始就内置了交叉编译支持,不需要额外安装任何跨平台编译工具链,你的Go 1.10.1完全满足要求,只要环境变量设置正确就没问题~
内容的提问来源于stack exchange,提问作者LCaraway
相关产品推荐
相关产品推荐

