一尘不染

Golang二进制文件可移植吗?

go

假设我主要是Linux用户,但是我正在Go中开发一个我希望成为跨平台的应用程序。我到处搜寻,但似乎找不到能满足以下条件的信息:

  1. 如果我go install在amd64 Ubuntu系统上使用二进制文件,那么它也可以在 其他任何人的 64位Ubuntu / Debian系统上运行吗?
  2. 我如何使用它go install来构建一个x86_64二进制文件,该二进制文件也将在32位Debianlikes上开箱即用?
  3. 如果必须使用Windows制作可以在Windows上运行的二进制文件,那么即使我的Windows系统是64位,我如何还能确保为x86_64构建可执行文件?

我的问题实际上归结为:“连接器/编译器的静态/便携性如何?”


阅读 378

收藏
2020-07-02

共1个答案

一尘不染

  1. 是的,它会的; 这基本上适用于所有为64位Linux编译的二进制文件,而不仅仅是用Go编写的二进制文件(共享库除外,Go不依赖于此)
  2. 您可以设置GOOSGOARCH建设前的环境变量:GOOS=windows GOARCH=386 go build(或go install或其他)等
  3. 默认情况下,将为您正在运行的系统构建一个二进制文件,但这不是必需的-参见2
2020-07-02