linux - 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
解决方案
推荐阅读
- php - 如何使用按钮在多个条件下搜索数据(如果)?
- javascript - 如何在保存另一个文档之前等待循环完成?
- julia - 使用具有多个条件的 findall
- python - Python 输出为列,还添加逗号 (csv)
- node.js - 如何修复“完成请求前进程已退出”
- android - 实体关系 - android
- jelastic - Jelastic - Collabora Online with Next Cloud without ssl(用于测试)
- php - 如何用新行替换 XML 格式的所有 HTML 换行符(
)? - laravel - Laravel Dusk:如何从元素中获取 HTML?
- javascript - localhost 在 Opera 而不是 chrome 中打开。我该如何改变它?