在 Ubuntu 上进行 Golang 交叉编译,您需要设置 GOOS 和 GOARCH 环境变量来指定目标操作系统和架构。以下是一些常见的目标操作系统和架构组合:
GOOS=windows GOARCH=amd64GOOS=darwin GOARCH=amd64GOOS=linux GOARCH=386GOOS=linux GOARCH=amd64以下是一个简单的示例,说明如何在 Ubuntu 上为 Windows 64位系统交叉编译一个 Go 程序:
go build 命令。例如:GOOS=windows GOARCH=amd64 go build -o myprogram.exe myprogram.go
这将生成一个名为 myprogram.exe 的可执行文件,适用于 Windows 64位系统。
如果您需要为目标系统生成静态链接的可执行文件,可以添加 -ldflags '-extldflags "-static"' 参数:
GOOS=windows GOARCH=amd64 go build -o myprogram.exe -ldflags '-extldflags "-static"' myprogram.go
这将生成一个静态链接的 Windows 可执行文件,不依赖于目标系统的库。
请注意,某些情况下,您可能需要为目标系统安装额外的依赖库或工具。在这种情况下,请查阅相关文档以获取更多信息。