【发布时间】:2021-11-25 10:28:41
【问题描述】:
我不是在寻找runtime.GOARCH,因为它提供了已编译程序的拱门。我想检测操作系统架构,假设我在 64 位机器上运行 32 位 go 程序,我需要将其识别为 64 而不是 32 位。
【问题讨论】:
-
你可以看看
int的大小。它是特定于架构的。 -
由于架构是 32 位或 64 位,您可以将 goarchList 映射到 32 位或 64 位。并使用
runtime.GOARCH返回的值作为键。 playground example. -
你为什么想知道这个?唯一重要的方法是检测您的 32 位程序是否在 64 位架构上运行。或者,如果您想为其他程序创建安装程序/启动器。您已经知道程序的位数,并且 64 位应用程序无法在 32 位机器上运行。
-
@PanagiotisKanavos 例如,当您执行从
int到int32的转换时,检测字的大小是相关的。在 64 位架构上,您可能会丢失信息。 -
下面的答案能回答你的问题吗?如果是,请接受。如果没有,请说明缺少的内容。
标签: go cpu-architecture 32bit-64bit