如何将Go程序与C库连接?
我一直在浏览Go的源代码,但我仍然没有想到它。如果某人已经这样做了,你能分享一下吗?
更新:感谢@fserb,我发布了一些来自Go资源的文档:
Cgo可以创建Go 调用C代码的包。
用法:cgo [编译器选项] file.go
传递编译器选项 通过在调用时解释 gcc编译的C部分 封装
输入file.go是语法上的 导入的有效Go源文件 伪包“C”然后指 类型如C.size_t,变量等 作为C.stdout,或者诸如的函数 C.putchar。
如果立即导入“C” 在评论之前,评论是 在编译C时用作标题 包的一部分。例如:
// #include <stdio.h> // #include <errno.h> import "C"
Cgo将输入文件转换为 四个输出文件:两个Go源 文件,6c(或8c或5c)的C文件, 和gcc的C文件。
标准包makefile规则 Make.pkg自动化使用过程 CGO。请参阅$ GOROOT / misc / cgo / stdio和 例如$ GOROOT / misc / cgo / gmp。
Cgo尚未与gccgo合作。