matlab和c++混合编程---matlab和vs的环境配置问题

matlab调用c++代码的详细步骤已经在我的另外一篇博客中(matlab和c++混合编程---方法和步骤)说明,这里不再重复。按照它说明的步骤,mex编译一个简单的.cpp文件没有任何问题。但是如果你编译的.cpp文件里面include和lib了一些外部的头文件和静态库,例如用到了opencv库或是某个深度相机的SDK等,还是简单的mex这个cpp文件就会报错,提示找不到某个头文件。这是因为matlab和vs的环境配置没有完成。我就是被这个问题困扰了两天,现在贴出来,以后谨记。

首先,在vs中配置环境。

将你用到的SDK的头文件,静态库和动态库配置好,详细过程参见 vs项目中头文件(.h)静态库(.lib)和 动态库(.dll )的路径和配置问题

将matlab安装目录下的extern文件夹中的包含文件夹,静态库文件夹配置到vs项目中,例如我的是‘D:\programs installing\matlab2016\extern\include’和‘D:\programs installing\matlab2016\extern\lib\win64\microsoft’,这一步可以参考我转载的博文matlab和c++混合编程---方法和步骤

然后,在matlab中配置环境。

matlab的环境配置和vs不同,MATLAB里面都是用命令配置编译环境的,第一步,mex -setup,根据提示一步一步来就可以了;第二步,编译,如果是简单的cpp文件,直接mex xxxxxx.cpp就可以了,如果这个.cpp文件里面包含附加依赖项和外部静态库,仅仅简单的mex这个文件就会报错,这时需要在mex这个文件的同时,将用到的外部包含库和静态库添加进去(详细查阅一下mex这个函数的用法),例如我需要将包含目录D:\myo-sdk-win-0.9.0\include,lib目录D:\myo-sdk-win-0.9.0\lib以及lib文件myo32myo64配置进去,就需要这样命令:mex SEMGStream.cpp -I'D:\myo-sdk-win-0.9.0\include' -L'D:\myo-sdk-win-0.9.0\lib' -lmyo32 -lmyo64

需要说明的是,matlab的环境配置跟平时的添加路径不一样,及时你在matlab的设置路径里面将用到的外部库目录添加进去,用mex编译的时候还是会报错,只能通过mex函数的参数进行路径包含,我就是被这个误区困扰了两天,希望看到的朋友避免同样的问题。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值