如何在 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 确实内置了交叉编译支持。