go语言-使用swig转化C++代码为go所用

为了提高服务端项目的性能,从PHP切换到Go。由于存在已有的C++关键模块,采用SWIG工具来连接Go和C++。本文介绍了SWIG的使用步骤,包括配置接口文件、编译流程和如何处理预定义类型。最终,通过将生成的.go和.a文件放入GOPATH,实现了C++代码作为Go包的集成,并讨论了正确的编译方式以确保所有依赖在自定义的GOPATH中。
摘要由CSDN通过智能技术生成

服务端的某个项目,要考虑到性能问题,之前使用基于公司框架的php,性能有瓶颈,经过调研,决定使用go。因为之前有一个关键模块已经使用c++实现,所以计划使用go做HTTP容器,让go和c++模块结合起来。
在网上调研结合方案,go自带的cgo只支持c语言,swig工具可以支持多种语言结合c++,所以决定使用swig,这里简要叙述下swig的使用和一些发现的要点。
1. 我们解压了swig后,首先要根目录运行configure和make,这样会生成各个子目录的makefile,并在当前目录生成preinst-swig.in和swig可执行文件,这些在后续会拥有。
根目录
2. 我们进入Example的go里面,这里有一些值得参考的例子
这里写图片描述
3. 研究那个class例子,有这几个文件:
这里写图片描述
class.cxx和example.h是我们希望转换的C++代码。
example.i是C++和go的桥梁接口文件,主要是配置。
Makefile会做build工作,其核心其实是调用了Example根目录下那个Makefile。
runme.go是go代码,其中调用了C++代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值