有些编译器是分32位和64位,比如gcc,虽然操作系统是64位的,但是我们可以安装32位的gcc
golang也是这个样子的吗
肯定是分的,但我们不用关心,go 命令已经封装好了,它会依据平台选择不同的底层命令。
在 go 安装目录的 pkg 目录下有个 tools 目录,里面包含了编译链接时实际使用的命令,比如我的 Mac Pro,在 pkg/tool/darwin_amd64/ 下能找到 go 编译链接实际调用的命令 compile 和 link。darwin_amd64 中 drawin 表示操作系统,amd64 就是系统架构。
至于在 64 位上机器上安装 32 位的 Go 能不能用,我就不太清楚了,你可以测试下,按理是可以的,但实践才是检验真理的唯一标准,测试下也不是很麻烦。
还有,如果是想在 64 位机器上编译 32 位的程序,可以使用交叉编译。
$ GOOS=windows GOARCH=386 go build index.go
2 回答2.7k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
1 回答1.5k 阅读✓ 已解决
2 回答1.4k 阅读
1 回答1.9k 阅读
首先, 你的开发机上安装的go肯定是与你机器的操作系统和体系结构相匹配的. 你要问的, 应该是交叉编译的概念. 可以看一下GOOS和GOARCH两个环境变量是如何配置的. GOOS确定了目标操作系统, GOARCH确定了目标体系结构.