问题
最近在做项目时,需要使用golang的交叉编译,在windows系统上打包一个可以在linux系统上运行的golang程序的二进制文件。
这就需要暂时修改一下golang的配置环境:
shell
set GOARCH = amd64
set GOOS = linux
但是修改的时候发现在goland终端输入这两条命令之后,虽然终端不会报错,但是go env查看之后,发现配置环境还是没有修改成功。

问题排查
然后使用windows系统中的cmd终端:

可以发现,使用cmd终端成功修改了
问题解决
经过查询之后,发现在goland终端修改不成功的原因是因为goland终端使用的是PowerShell,而使用cmd和使用PowerShell终端修改配置变量的语法命令是不一样的,所以在goland终端中修改配置变量没有生效。
解决:
cmd终端修改命令:
go
set GOARCH = amd64
set GOOS = linux
PowerShell终端修改命令(也就是在goland中):
go
$ENV:GOOS="linux"
$ENV:GOARCH="amd64"
问题解决。