我正在 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/