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!