Post

go语言多版本管理

正常来说,自己开发的话安装一个最新的就行,各方面体验最佳。

但是客户需求是千奇百怪的, 比如我这个项目,需要在win7上运行,而且还是32位的。具体版本是: win7 sp1

我当前版本安装的是1.22.5, 算是新的了, 用命令打包成x86版本的exe应用,传到服务器却是不能成功运行。

报错提示:

C:\Users\cdfy\Desktop>server_win.exe
Exception 0xc0000005 0x8 0x0 0x0
PC=0x0

runtime.asmstdcall(0x20)
        C:/Program Files (x86)/Go/src/runtime/sys_windows_386.s:44 +0x2a fp=0x1c
f8e8 sp=0x1cf8e4 pc=0x37d87a
eax     0x8
ebx     0x1063150
ecx     0x0
edx     0x1cf918
edi     0x1cf8ec
esi     0x1cf94c
ebp     0x1cf8ec
esp     0x1cf8e0
eip     0x0
eflags  0x10206
cs      0x1b
fs      0x3b
gs      0x0

搜索了下,原来go 1.20是最后一个支持win7的版本,后面都不支持了。

那么现在就涉及到一个多版本装在同一个window系统中,百度搜索了下,使用了g这个多版本管理工具,还是挺好使得,这里记录下安装过程:

  • 直接在开源站点上下载g这个工具
  • 新增G_HOME环境变量,指向解压根目录
  • 新增G_MIRROR环境变量,指向国内go下载的镜像地址
  • 移除并替换原有go的path 环境变量配置, go/pathto/bin,更新为%USERPROFILE%\.g\go\bin
  • 移除并替换原有的GOROOT环境变量配置,更新为%USERPROFILE%\.g\go

然后重新打开命令窗口即可使用了,还是挺方便的。

一些常用命令:

  • g ls 查看当前安装的版本
  • g use 1.20 切换为1.20使用
  • g install 1.20 安装1.20版本的go
  • g uninstall 1.20 卸载1.20的版本

安装完成后,使用上诉命令重新打包后,可以正常在32位win7中运行,nice。

This post is licensed under CC BY 4.0 by the author.