WIN8.1下MSVC2013调用MATLAB engine
环境说明
1. 系统:64位win8.1
2. MSVC2013:64位
3. MATLAB:2014a 64位
说明:QT调用matlab engine如下:
http://blog.sina.com.cn/s/blog_89a45b020102vrr8.html
matlab头文件与库文件的引用
1. 进入:工程项目->属性->配置属性->VC++目录,在以下两个目录下添加matlab头文件与库文件地址,如图1所示
a) 包含目录:C:\MATLAB\R2014a\extern\include
b) 库目录:C:\MATLAB\R2014a\extern\lib\win64\microsoft
c) 说明:不同版本的MATLAB的文件地址可能有所不同
2. 进入:工程项目->属性->配置属性->链接器->输入,添加依赖项,如图2
a) 附加依赖项:libmx.lib libmat.lib libeng.lib
b) 说明:这3个库文件都在C:\MATLAB\R2014a\extern\lib\win64\microsoft下。
图2 添加依赖项
环境变量的设置
1. 进入:右键“这台电脑”->属性->高级系统设置->高级->环境变量->新建用户变量,如图3
a) 变量名:Path
b) 变量值:C:\MATLAB\R2014a\bin\win64;
c) 说明:如果不设置环境变量,程序编译会通过,但运行过程中会报错,提示缺少各种.dll文件,这些文件都在这个路径下
图3 环境变量的设置
MSVC2013编译器的设置
由于本人的matlab是64位,编译器默认的是32位,无法编译通过,出现号“error LNK2019: 无法解析的外部符”,因此编译器需要设置成64位。
1. 进入:生成->配置管理器->活动解决方案平台->新建,如图4显示
2. 修改后工具栏中选择x64平台,如图5所示
3. 说明:这一步设置可能理解不正确,属于误打误撞解决了,有一定的偶然性,可以在这里多次尝试,并且可能需要重启msvc2013
图4 新建64位编译器
图5 选择x64平台
测试例程
1. 用MSVC2013新建一个win32控制台应用程序
2. Main.cpp 如下,直接选择matlab给出的一个案例,地址为:
C:\MATLAB\R2014a\extern\examples\eng_mat\engdemo.c
3. 程序编译后,运行结果如图6,会打开一个matlab command window,并绘图
图6 程序运行结果
Matlab engine API介绍
这里不做过多重复介绍,给出几个参考地址吧
1. MATLAB Engine API介绍:http://blog.sina.com.cn/s/blog_67d069a90100q37c.html
2. MATLAB Engine API for C,C++,and Fortran:http://cn.mathworks.com/help/matlab/calling-matlan-engine-from-c-c-and-fortran-programs.html
其它问题
1. Matlab mcc不可用
如果程序编译通过,运行matlab时无法加载,可能是matlab的破解不够彻底,可以到网上找一下破解包,关于matlab编译器mcc的破解。直接给出下载地址:
链接:http://pan.baidu.com/s/1gdzNBxx
密码:jqm5