我正在尝试使用golang的交叉编译功能,在我的机器上(Windows 7)进行编译,以便在Linux和amd64之间进行切换。
我已经正确设置了一切,并创建了环境变量。
GOARCH = amd64
GOOS = linux
每当我尝试通过更改GOOS为Linux或amd64来切换平台时,就会出现问题。我使用Console 2来管理我的标准cmd、cygwin控制台和git控制台。 使用以下命令更改GOOS:
xset GOOS=amd64
不同的控制台显示变量值不同,例如:
//git bash
echo $GOOS
linux
//cmd
echo %GOOS%
amd64
即使重新启动了所有的控制台,该问题仍然存在。此外,我突然无法访问我的系统的某些部分! 尝试访问我的“高级系统设置” 在我的系统属性中现在会返回一个警告:
"%windir%\system32\systempropertiesadvanced.exe" could not be found.
似乎是Win7突然无法处理自己的环境变量。
这也意味着我不能再通过Windows GUI更改变量。
最重要的是,“go”命令不再绑定,我无法使用go构建任何内容。
到目前为止,我唯一的解决方案是每次更改变量时重新启动整个系统。 重启后,变量被改变,一切正常,直到我想再次改变GOOS。
我会非常感谢您提供任何形式的帮助,我是go的新手,认为我可能遗漏了一些显而易见的事情。
谢谢您提前。
set
或者cygwin的env
代替xset
吗?这可能是该程序的问题。 - Jeremiah Winsleyset
,但是后来转而尝试使用xset
希望解决我的问题。不过我会尝试使用env
。 - BricktopGOOS=linux go build xxx
,当我不得不经常做这种事情时,我就会构建一个脚本。个人认为这样我的环境会变得更加干净。 - Corey Scott