首页 > 解决方案 > golang cgo - 使用 linux 为 darwin 交叉编译共享对象

问题描述

以下帖子详细介绍了如何使用 Ubuntu/Linux 交叉编译适用于 Windows 的 golang c-shared 对象:

使用 Golang 1.10 编译 Windows DLL 时遇到问题

该解决方案似乎只是确保安装了mingw,然后指定这两个环境变量:

GOOS=windows CC=i686-w64-mingw32-gcc

现在我想做同样的事情来从 Ubuntu 为 Mac/Darwin 构建一个共享对象。我知道我可以设置 GOOS=Darwin,但是正确的 CC/gcc 应该使用什么?当我没有指定 CC env 变量时,我从设置了 GOOS=darwin 的 go build 收到以下错误:

/home/user/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: cannot find 1144: No such file or directory
/tmp/go-link-601074638/go.o: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status

标签: linuxgoshared-librariesdarwin

解决方案


推荐阅读