给定可执行文件,我可以确定用于构建它的GOOS和GOARCH的值吗?

给定可执行文件,我可以确定用于构建它的GOOS和GOARCH的值吗?,第1张

给定可执行文件,我可以确定用于构建它的GOOS和GOARCH的值吗?

编辑:

runtime.GOROOT()
在Go 1.10 中更改的行为,有关详细信息,请参见Go
1.10发行说明#Runtime
。现在基本上
runtime.GOROOT()
检查是否
GOROOT
设置了环境变量,如果已设置,则返回其值。如果不是,则返回
GOROOT
编译时记录的值。


检查

runtime
包装:

GOARCH,GOOS,GOPATH和GOROOT环境变量完善了Go环境变量集。它们会影响Go程序的构建(请参阅https://golang.org/cmd/go和https://golang.org/pkg/go/build)。
GOARCH,GOOS和GOROOT会在编译时记录下来, 并通过此包中的常量或函数提供,但它们不会影响运行时系统的执行。

GOARCH
和的可能组合列表,
GOOS
可在以下位置找到:https
:
//golang.org/doc/install/source#environment

因此,您要查找的是

runtime
包中的常量:

runtime.GOOSruntime.GOARCH

它们将完全包含构建您的应用程序时存在的值。

例如,请参见以下简单应用程序:

func main() {    fmt.Println(runtime.GOOS)    fmt.Println(runtime.GOARCH)}

假设

GOOS=windows
GOARCH=amd64
。运行它将
go run xx.go
打印:

windowsamd64

从中构建一个exe(例如

go build
)。运行exe具有相同的输出。

现在更改

GOARCH
386
。如果使用
go run
(或构建一个exe并运行它)运行它,它将显示:

windows386

如果您运行以前构建的exe,它将仍然打印:

windowsamd64


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5086873.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-16
下一篇2022-11-16

发表评论

登录后才能评论

评论列表(0条)

    保存