安装 Amazon Linux 的交叉编译工具链: Amazon Linux 系统使用了 musl libc,因此我们需要安装相应的工具链。

brew tap aws/tap
brew install aws-sam-cli

设置环境变量: 设置环境变量,以便 Go 能够找到 Amazon Linux 的交叉编译工具链。

export CGO_ENABLED=0
export GOOS=linux
export GOARCH=amd64
export GO111MODULE=on

这些变量设置了目标操作系统 (GOOS=linux) 和架构 (GOARCH=amd64),并禁用了 CGO(CGO_ENABLED=0),因为 Amazon Linux 使用 musl libc,而不是默认的 libc


执行交叉编译: 使用 go build 命令进行交叉编译。

go build -o output_binary_name

这将生成一个可在 Amazon Linux 上运行的二进制文件。请将 output_binary_name 替换为您的二进制文件名称。


复制到 Amazon Linux: 将生成的二进制文件复制到 Amazon Linux 系统。

scp output_binary_name ec2-user@your-amazon-linux-ip:~/path/to/destination

替换 your-amazon-linux-ip 为您的 Amazon Linux 服务器的 IP 地址,path/to/destination 为您希望存储二进制文件的路径。


在 Amazon Linux 上运行: 在 Amazon Linux 上运行二进制文件。

ssh ec2-user@your-amazon-linux-ip
cd path/to/destination
./output_binary_name

请注意,确保 Amazon Linux 上有相应的运行时环境,以便执行您的二进制文件。