我正在编写一个脚本,该脚本将从Google云存储中下载可执行二进制文件并在Google云计算上执行。
但是,我不知道使用GOOS
命令构建可执行文件的GOARCH
和go build
环境变量的正确值是什么。
答案 0 :(得分:4)
容器优化的操作系统是Linux衍生产品,据我所知,所有GCE实例都是x86_64计算机。这台机器是一个n1-standard-1,具有稳定的COS图像:
user@instance-1 ~ $ uname -a
Linux instance-1 4.4.111+ #1 SMP Thu Apr 5 21:21:21 PDT 2018 x86_64 Intel(R) Xeon(R) CPU @ 2.50GHz GenuineIntel GNU/Linux
为构建COS使用
GOOS=linux GOARCH=amd64
答案 1 :(得分:-1)
以下是为各种处理器体系结构和操作系统构建Go二进制文件的示例:
#!/usr/bin/env bash
# Build go binaries for the 3 main architectures that we can use on
tagged releases
for GOOS in darwin linux windows; do
for GOARCH in 386 amd64; do
go build -v -o gm-fabric-proxy-$GOOS-$GOARCH
done
done
基本上GOOS告诉Go编译器你要编译哪个OS,GOARCH告诉编译器它需要遵循哪个处理器架构。
在基于unix的系统上,您可以运行此命令来查找处理器体系结构和操作系统内核信息:
Alecs-MacPro:~ user$ uname -a
Darwin Alecs-MacPro.local 17.4.0 Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64 x86_64
上面提供的脚本示例将为3个主要操作系统和2个主要体系结构创建二进制文件。