2 回答

TA贡献1775条经验 获得超8个赞
$GOHOSTOS
和( 分别为和$GOHOSTARCH
提供默认值) 在构建 go 程序时使用,不会影响运行时系统的执行。GOOS
GOARCH
GOOS
并GOARCH
在编译时记录并通过常量runtime.GOOS
和runtime.GOARCH
. 您可能需要检查这些常量。

TA贡献1824条经验 获得超5个赞
短版,你不能。
长版本,您可以创建一个将信息嵌入代码中的构建脚本,例如:
- main.go:
package main
import (
"fmt"
"runtime"
)
var (
hostOS string
hostArch string
)
func main() {
fmt.Println("runtime values:", runtime.GOOS, runtime.GOARCH)
fmt.Println("build time values:", hostOS, hostArch)
}
- 构建.sh
#!/bin/sh
# replace main. with whatever package you're using
go build -ldflags "-X main.hostOS=$(go env GOHOSTOS) -X main.hostArch=$(go env GOHOSTARCH)" $*
- 输出:
$ env GOARCH=386 ./build.sh
$ ./tmp
runtime values: linux 386
build time values: linux amd64
- 2 回答
- 0 关注
- 374 浏览
添加回答
举报