C++/Matlab混合编程(vs2010和matlabR2014a)

这几天在使用matlab/c++混编时,遇见很多问题,解决起来很痛苦,分享一些经验给大家,希望大家少走些弯路。
首先这里说下,不建议使用matlab2010a和vs2010来混合编程,因为我自己尝试过,遇到很多问题,matlab2010a是在vs2010前发布的,所以自身是识别不到vs2010编译器的,建议用matlab2010b以上。

1、装载vs2010和matlab2014a

这两个东西我就不单独拿出来说了,网上教程一堆。

2、编译dll动态链接库

打开matlabR2014a,在命令行窗口输入
mex -setup C++
mex -setup C++ -client MBUILD
配置好编译器,如果出现如下语句,证明配置好了

MEX 配置为使用 'Microsoft Visual C++ 2010' 以进行 C++ 语言编译。
MBUILD 配置为使用 'Microsoft Visual C++ 2010 (C)' 以进行 C 语言编译。

然后再命令行窗口输入deploytool,出现如下窗口,选择Library Compiler
这里写图片描述
然后再如下窗口中
这里写图片描述
左上方选择C++ Shared Library,点击+号,将自己需要编译的.m文件选中,在Library Name那里给动态库写好名字,然后点击package。等待后编译完成,如图。
这里写图片描述
然后可以找到如下图所示的.dll, .h, .lib
这里写图片描述

3、配置windows下vs2010的环境

将上面生成的.dll,.h,.lib放到你的vs2010工程文件里。右键电脑->属性->高级系统设置->环境变量->系统变量,在Path中添加
Matlab2014a安装路径\bin\win64
Matlab2014a安装路径polyspace\bin
如果有的话就不用添加。
在vs2010中右键vs工程->属性->vc++目录中的包含文件中加入Matlab2014a安装路径\extern\include
库目录总添加
Matlab2014a安装路径\extern\lib\win64\microsoft
c/c+±>常规下的附加包含目录中添加
Visual Studio 2010 Project\当前工程\当前工程,及刚才.lib,.h,.dll所放在的文件夹。
链接器->常规下的附加库目录添加Matlab2014a安装路径\extern\lib\win64\microsoft
输入中的附加依赖项中添加
libeng.lib
libmat.lib
libmex.lib
libmx.lib
mclmcrrt.lib
mclmcr.lib
刚才用matlab编译的.lib
这时候环境就配置完了。
在调用matlab函数功能前,先调用

	if (!MyInitialize())    //初始化,在.h中能找到这个函数,对应的名字
	{
		cout << "Could not initialize MatDLL!" << endl;
		exit(0);
	}

必须要有上述的代码。然后就可以测试你自己的函数功能是否正确

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值