linux - 在 darwin for linux 上交叉编译 CGO 应用程序

标签 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: 未知选项:--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/

相关文章:

linux - 当 copts 包含空格时,如何使用 bazel 在 docker build 镜像上交叉编译 tensorflow-serving

c# - 间歇性 SIGSEGV(段错误)、SIGABRT 和进程在使用 Mono 的 C# 代码中挂起

c - DNS 安全和端口随机化

arrays - Golang,将嵌入式结构转换为数组

go - Gmail API Pub/Sub 推送不停止

mongodb - 如何使用 mgo 和 Go 查询具有日期范围的 MongoDB?

linux - 在本地编辑文件的多行,然后多次重命名 - Linux

c++ - 在 C++ 中使用 linux 系统调用获取我 child 的 pid

linux - 安装Android-EABI工具链时,是否可以覆盖/usr中的文件?

build - CMake - native 编译和交叉编译相同的代码