CGO Go 与 C 的互相调用
CGO 提供了 Golang 和 C 相互调用的机制。通过 CGO 技术我们可以在 Go 中调用 C 函数,也可以将 Go 函数导出为 C 函数。
Go 调用 C 函数
1 | package main |
- 上述代码中的
import C,"C"是一个伪包,在Go的标准库中并不存在"C"包,CGO通过这个查找到对应引用C命名空间的。
C 调用 Go 函数
main.go 文件,main 函数中调用 add.h 文件中的 C.test 函数。
1 | // main.go |
add.go 文件,定义并导出了 Add 函数,提供给 add.h 文件调用。其中 //export Add 是导出 Add 为 C 函数。
1 | // add.go |
add.h 文件,通过 extern 导入 add.go 文件定义的 Add 函数,并在 C.test 函数中调用。
1 | // add.h |
- 使用命令
go build main.go add.go编译
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kanri's blog!






