golang中调用c的正确姿势

Python013

golang中调用c的正确姿势,第1张

工程结构如上图所示,我们需要实现的目标是在go文件中调用c文件

foo.c如下:

foo.go如下

foo.h如下:

编译过程如下:

1、先将c文件编译为.o文件,然后生成动态链接库.dylib文件

(1) clang -c foo.c

(2 clang -shared foo.o -o libfoo.dylib

2、在上述的动态链接库生成之后,在foo.go中添加动态链接命令:#cgo LDFLAGS: -L./ -lfoo

需要注意的是

中间不能有空格

没有,union是很好的东西,但是go恐怕不会去支持。

毕竟union这个东西主要还是用于不降低速度下的节约内存,为此增加的复杂度。

go语言

不会支持的。