在darwin上为Linux编译CGO应用程序

时间:2015-02-23 00:46:47

标签: linux go cross-compiling darwin cgo

我在尝试交叉编译OS X上的Go应用程序以在linux / amd64上运行时遇到问题。相关应用通过此libvips使用vips go package。因此,它正在使用CGO,需要使用CGO支持进行编译。

我在Go 1.4上运行以下构建命令

GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build

但最终会出现链接器错误

ld: unknown option: --build-id=none clang: error: linker command failed with exit code 1 (use -v to see invocation)

我假设我可能需要添加某种-ldflags参数,但我不确定。

是否有可能以这种方式交叉编译CGO应用程序,或者我是否需要在目标系统上进行本机构建以避免问题和麻烦?

1 个答案:

答案 0 :(得分:1)

看看gonative。这允许您交叉编译cgo代码(只要您使用stdlib)。

另一种方法是使用docker编译linux二进制文件。