C++/Matlab混合编程(vs2010和matlabR2014a)
来源:互联网 发布:recyclerview优化 编辑:程序博客网 时间:2024/06/05 15:52
这几天在使用matlab/c++混编时,遇见很多问题,解决起来很痛苦,分享一些经验给大家,希望大家少走些弯路。
首先这里说下,不建议使用matlab2010a和vs2010来混合编程,因为我自己尝试过,遇到很多问题,matlab2010a是在vs2010前发布的,所以自身是识别不到vs2010编译器的,建议用matlab2010b以上。
1、装载vs2010和matlab2014a
这两个东西我就不单独拿出来说了,网上教程一堆,唯一要注意的是matlab2014a是否完全破解,如果没完全破解,在编译dll的时候会出现问题。
大家在按照网上的方法破解完成后,到下载地址
下载文件,然后将其中的win64/bin/win64中的3个文件替换掉matlab2014a/bin/win64下的对应文件
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); }
必须要有上述的代码。然后就可以测试你自己的函数功能是否正确
- C++/Matlab混合编程(vs2010和matlabR2014a)
- vs2010和Matlab R2012a 混合编程
- vs2010和Matlab R2012b 混合编程
- Matlab和C混合编程
- c和matlab混合编程
- C和MATLAB混合编程
- MatlabR2014a+Visual studio 2013 混合编程(都是 64位)
- matlab 2012 vs2010混合编程
- matlab 2012 vs2010混合编程
- matlab与C混合编程调试-vs2010+matlab2012a
- MATLAB和VS2010的混合编程需要注意的问题
- matlab 和c混合编程-------------------基础
- Matlab 和 C/C++混合编程
- matlab和C/C++混合编程--Mex
- matlab和C/C++混合编程--Mex
- Matlab和C混合编程举例
- 小记Matlab和C混合编程
- matlab和C/C++混合编程--Mex
- 腾讯2017暑期实习生编程题之我见
- 标注 @JsonInclude(Include.NON_NULL)
- 改变系统的UIAlert的字体色彩
- Window和WindowManager
- iOS 常用函数方法
- C++/Matlab混合编程(vs2010和matlabR2014a)
- hibernate级联关系思考
- 并行编程(2):Task
- 3389连接超时设置
- 获得网络状态和实时监控网络状态改变
- VS2015中搭建lua环境
- 全屏页面往下往上滚动切换页面
- iOS 学习笔记 Quartz2D绘图
- MFC中屏幕刷新闪烁问题解决方法总结