1、import C必须紧跟上面的C代码。c代码需要//和/* */包含起来
2、C调用go的接口,需要在go的接口前面调用//export
//export go_print
func go_print(value string) {
fmt.Println(value)
}
3、multiple definition of
如果在go的代码里面export,且本文件有C代码的实现,就会出现这个情况
目前了解的是两个解决方法:1、将go里面的c代码移出来搞一个C文件,然后在go里面声明或include;2、在C代码里的函数前面加上__attribute__((weak))
4、could not determine kind of name for C.free
出现这个情况有两种原因:1、C代码和import "C"之间有空行,2、没有包含free的头文件