用matlab调用C++库的三种方法(超全版)

最近想用matlab调用pcl(点云库),但是苦苦找寻,很多方法简单的C++代码可以实现,一旦涉及到第三方库就不行了,研究了一周,总结一下遇到的问题和解决方法。

首先介绍一个比较全面的书籍:https://download.csdn.net/download/Meet_csdn/12434403(若被删除,则搜索 精通matlab C/C++混合程序设计 第四版)

matlab版本为2017b,vs版本2015。

1.用MEX接口

这种方法是最常见的方法,相对来说也比较简单,主要涉及修改C++中入口函数和传递参数格式。

首先在matlab中输入

mex -setup

查看一下编译器的情况,我的会出现

然后先输入一些简单的代码测试是否能运行

test.cpp

#include "mex.h"
 
double add(double x, double y)
{
    return x + y;
}
 
 
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
	double *a;
    double b, c;
    plhs[0] = mxCreateDoubleMatrix(1, 1, mxREAL);
    a = mxGetPr(plhs[0]);
    b = *(mxGetPr(prhs[0]));
    c = *(mxGetPr(prhs[1]));
    *a = add(b, c);
}

 输入 mex test.cpp,正常情况下就会出现由vs2015编译,没有报错。

但是我的vs会报错,我也很苦恼不知道为什么,换到另一台电脑matlab2017b+vs2013就没问题,错误如下,如有大佬知道原因还请不吝赐教。

  • 5
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值