我在尝试交叉编译 OS X 上的 Go 应用程序以在 linux/amd64 上运行时遇到问题。有问题的应用程序正在使用 libvips通过这个vips go package .因此,它正在使用 CGO,需要在 CGO 支持下进行编译。
我正在使用 Go 1.4 并运行以下构建命令
GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build
但以链接器错误告终
ld: 未知选项:--build-id=none
clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
我假设我可能需要添加某种 -ldflags
参数,但不确定。
是否有可能以这种方式交叉编译 CGO 应用程序,或者我是否需要在目标系统上进行本地构建以避免出现问题和麻烦?
最佳答案
看看gonative .这允许您交叉编译 cgo 代码(只要您只使用 stdlib)。
另一种方法是使用 docker 编译 linux 二进制文件。
关于linux - 在 darwin for linux 上交叉编译 CGO 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28665377/