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的头文件
 
posted on 2022-04-02 16:29  莱芜梆子  阅读(781)  评论(0编辑  收藏  举报