c

c

golang可以调用C++的动态链接库么

有问必答andylau004 回复了问题 • 6 人关注 • 5 个回复 • 2220 次浏览 • 2016-12-08 12:02 • 来自相关话题

条新动态, 点击查看
dada

dada 回答了问题 • 2016-10-17 10:03 • 5 个回复 不感兴趣

golang可以调用C++的动态链接库么

赞同来自:

go调用c/c++的库得用cgo机制,用cgo机制的时候首先先得掌握c/c++的常用编译参数,比如-L、-l、-I这些,遇到错误时候要能判断是编译器报错还是链接器报错,这个基本功非常重要。

其次是掌握cgo的基本用法,比如指针类型怎么传递,字符串类型怎么传递... 显示全部 »
go调用c/c++的库得用cgo机制,用cgo机制的时候首先先得掌握c/c++的常用编译参数,比如-L、-l、-I这些,遇到错误时候要能判断是编译器报错还是链接器报错,这个基本功非常重要。

其次是掌握cgo的基本用法,比如指针类型怎么传递,字符串类型怎么传递,什么时候该释放字符串内存。

更高级的知识是设置go的回调函数给c/c++,以上这些请仔细阅读文档。

然后实践上要规避各种坑,比如cgo调用的开销,如果你是对c/c++的库做1:1封装,并且在go这边高频次调用,那开销会很大,有时候需要把部分业务逻辑用c/c++合并实现,做成1:N封装,有点像小消息大计算的概念,这样可以简化调用又可以降低开销。

c++的库得自己做一层c来包裹,这里涉及到c++包裹成c的知识,不属于cgo支持,如果之前没做过,需要补充知识。

golang可以调用C++的动态链接库么

回复

有问必答andylau004 回复了问题 • 6 人关注 • 5 个回复 • 2220 次浏览 • 2016-12-08 12:02 • 来自相关话题