WIN8.1下MSVC2013调用MATLAB engin…

WIN8.1MSVC2013调用MATLAB engine

环境说明

1.         系统:64win8.1

2.         MSVC2013:64位

3.         MATLAB2014a 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的文件地址可能有所不同

WIN8.1下MSVC2013调用MATLAB <wbr>engine
1 includelib目录的引用

2.         进入:工程项目->属性->配置属性->链接器->输入,添加依赖项,如图2

a)         附加依赖项:libmx.lib  libmat.lib  libeng.lib

b)         说明:这3个库文件都在C:\MATLAB\R2014a\extern\lib\win64\microsoft下。

 

WIN8.1下MSVC2013调用MATLAB <wbr>engine

2 添加依赖项

环境变量的设置

1.         进入:右键这台电脑”->属性->高级系统设置->高级->环境变量->新建用户变量,如图3

a)         变量名:Path

b)         变量值:C:\MATLAB\R2014a\bin\win64;

c)         说明:如果不设置环境变量,程序编译会通过,但运行过程中会报错,提示缺少各种.dll文件,这些文件都在这个路径下

 

WIN8.1下MSVC2013调用MATLAB <wbr>engine

3 环境变量的设置

MSVC2013编译器的设置

由于本人的matlab64位,编译器默认的是32位,无法编译通过,出现号“error LNK2019: 无法解析的外部符”,因此编译器需要设置成64位。

1.         进入:生成->配置管理器->活动解决方案平台->新建,如图4显示

2.         修改后工具栏中选择x64平台,如图5所示

3.         说明:这一步设置可能理解不正确,属于误打误撞解决了,有一定的偶然性,可以在这里多次尝试,并且可能需要重启msvc2013

WIN8.1下MSVC2013调用MATLAB <wbr>engine

 

4 新建64位编译器

 

WIN8.1下MSVC2013调用MATLAB <wbr>engine

5 选择x64平台

测试例程

1.         MSVC2013新建一个win32控制台应用程序

2.         Main.cpp 如下,直接选择matlab给出的一个案例,地址为:

C:\MATLAB\R2014a\extern\examples\eng_mat\engdemo.c

3.         程序编译后,运行结果如图6,会打开一个matlab command window,并绘图

 

WIN8.1下MSVC2013调用MATLAB <wbr>engine

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 Fortranhttp://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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章