Windows下的Goland编译Linux可执行程序

Windows下的Goland编译Linux可执行程序

场景

Windows系统安装了Goland,且Goland中指定终端使用Git Bash。在该场景下编译出Linux可执行程序。

解决方法一(cmd):

  • 在Windows的cmd设置go的环境变量
    set GOARCH=amd64
    set GOOS=linux
  • 在cmd终端下编译程序
    go build xx.go
  • 将可执行程序拷贝到linux系统某个文件夹下,赋予可执行权限并执行
    chmod 777 xx
    ./xx

解决方法二(Git Bash):

在cmd终端下更改了go的环境变量,但是对Goland的终端(Git Bash)无效;且在Git Bash执行set GOOS=linux也不生效。

  • 在Git Bash终端设置go的环境变量
    export GOARCH=amd64
    export GOOS=linux
  • 在Git Bash终端下编译程序
    go build xx.go
  • 将可执行程序拷贝到linux系统某个文件夹下,赋予可执行权限并执行
    chmod 777 xx
    ./xx

说明

以上两种解决方法只能临时修改go的环境变量,重启Goland或者重启cmd终端后失效。
执行 go env -w GOOS=linux 可以修改go的环境变量GOOS,且当重启Goland后或者打开其他项目后都有效。但是在Git Bash下执行chmod 777 xx赋予文件xx可执行权限失败。

如果按上述方式永久修改了GOOS,使用Goland的run命令直接运行程序会失败,即使临时设置export GOOS=windows也不起作用,只能通过go env -w GOOS=windows修改GOOS后才能在Goland中直接运行程序。

终上所述,在windows系统的Goland中编译Linux的可执行程序时,建议临时修改export GOOS=linux,而不是使用go env -w GOOS=linux永久修改。

你可能感兴趣的:(Windows下的Goland编译Linux可执行程序)