macos - 不使用 cgo 或 SWIG 时不允许使用 C 源文件

标签 macos go cross-compiling

我正在 OSX 10.11.4 上使用 Go 1.6,并尝试为 Windows 和 Linux 交叉编译我的 Go 程序。我在我的 go 程序中使用了一个库 ( https://github.com/pebbe/zmq4 ),它是基于 C 的实现的 Go 绑定(bind)。我按照列出的 x86 windows 的说明进行交叉编译 here通过发出以下命令:

env GOOS=windows GOARCH=386 go build -v znode.go

但是上面的命令给了我以下错误

znode.go:15:2: C source files not allowed when not using cgo or SWIG: dummy.c

有解决办法吗?我在 stackoverflow 上看到其他帖子建议迁移到 go1.5,但我已经在 go1.6

最佳答案

六年后的 FWIW...user720694 的评论有线索。如果有任何.c或.cpp/cc/等。构建目录中的文件,在 go build 之前添加 CGO_ENABLED=0 就可以了。

关于macos - 不使用 cgo 或 SWIG 时不允许使用 C 源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36348465/

相关文章:

xcode - 从Mac应用程序的调用堆栈中获取符号名称

elasticsearch - 我如何使用 olivere 的弹性 client.Update() 服务来更改数组字段、通用字符串字段和可能的嵌套结构字段?

仅限 Mac 上的 Chrome 的 CSS hack - 没有 JavaScript -

mongodb - 谷歌应用引擎 : One To Many relations in Go

sorting - 在 Golang 中,如何在不完全忽略大小写的情况下按字母顺序对字符串列表进行排序?

c++ - 使用 gcc 的工具链中的 sysroot 头文件优先于头文件

linux - 在 Linux 包或应用程序中编写任务哪种更好

c++ - 交叉编译器错误 : reference 'm_memoryManager' cannot be decalred 'mutable' [-fpermissive]

linux - 从脚本运行远程命令

ios - 奇怪的构建错误,类名问题?