Avatar ·

如何在 macOS 上执行 Go 程序的交叉编译?

大家好!我在 macOS 上用 Go 编程,想要为 Linux 和 Windows 构建二进制文件,以便在服务器上运行并分发给同事。我尝试直接运行 `go build`,但它只生成 macOS 的可执行文件。我了解到 Go 内置支持交叉编译,但不知道如何正确操作。 这是我的简单代码(main.go 文件): ```go package main import "fmt" func main() { fmt.Println("Hello, cross-compilation!") } ``` 我尝试过: ```bash GOOS=linux GOARCH=amd64 go build main.go ``` 但遇到错误:`cannot find package "main" in any of: ...` 或者生成的二进制文件在 Linux 上无法运行。我哪里做错了?是否需要像 CGo 那样安装额外的工具?我的系统是 macOS Big Sur,Go 版本 1.21。希望得到适合新手的逐步解释。 <<>>

在 macOS 上使用 Go 进行交叉编译的逐步解决方案

你的方向是对的!Go 确实内置了交叉编译支持。