SWIG使用遇到的问题
SWIG (Simplified Wrapper and Interface Generator)是一个连接C和C++编写的程序和其他脚本语言的接口编译器,如Perl、Python、Ruby和Tcl等脚本语言。编写好的C和C++程序可以通过SWIG编译成其他语言的接口。这里记录使用SWIG将C++代码转为python接口遇到的一些问题。
问题1 C++函数接口中bool & a
类型
- 问题描述
C++函数接口中需要传入bool类型的引用,如果SWIG直接打包后,在python脚本下会提示输入参数类型不匹配。例如:
test.h
里面有个接口使用了bool & a
作为参数.
- 解决办法
在SWIG的.i
文件中添加如下代码
%apply bool & OUTPUT { bool & a };
#include "test.h"
%clear bool & a;
python调用的时候输出值在原来的基础上多出一个bool
类型的a
值。
参数作为输入输出可参考Swig Arguments
问题2 C++函数接口中智能指针类型std::shared_ptr<core::Mat> & matrix
- 解决方法
在SWIG的.i
文件中添加如下代码
%include <std_shared_ptr.i>
%shared_ptr(core::Mat)
python调用时直接传core::Mat类型即可.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2017-08-02 nodejs爬虫笔记(四)---利用nightmare解决加载更多问题