vs2010下调用matlab2012b调试方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

vs2010下调用matlab2012b调试方法

配置环境:

vs2010+matlab2012b+win7 64位

说明:

以安装路径“E:\Program Files\MATLAB\R2012b\”为例MATLAB外部支持文件夹:

E:\Program Files\MATLAB\R2012b\extern

matlab自带的c例程:

E:\Program

Files\MATLAB\R2012b\extern\examples\eng_matengine.h的位置:

E:\Program Files\MATLAB\R2012b\extern\include各种lib的位置:

E:\Program Files\MATLAB\R2012b\extern\lib\win64\microsoft 在matlab帮助中输入“C language”即可找到有关MATLAB Engine的一个页面。

从这个页面开始,学习各种关键词,

就能够找到一切你需要的资料。使用MATLAB Engine一般用两套函数就可以了。

1.engXXXX,关于Engine本身的操作,包括打开/关闭,设置/取得变量,执行语句等等。

2.mxXXXX,关于数据类型mxArray的操作,与MATLAB 交互的左右类型全部为mxArray。搭建过程:1.先在VC6的tools->options->directories里添加相关目录include files:

E:\Program Files\MATLAB\R2012b\extern\include

E:\Program

Files\MATLAB\R2012b\extern\include\win64library files:

E:\Program

Files\MATLAB\R2012b\extern\lib\win64\microsoft2 点击LInker input 将libmx.lib;libmex.lib;libeng.lib;加入到Additional Dependencies

或者用#pragma comment (lib, "libeng.lib")

#pragma comment (lib, "libmx.lib")

#pragma comment (lib, "libmex.lib") 语句

3 环境变量加上E:\Program

Files\MATLAB\R2012b\bin\win64 否则编译成功运行时会显示缺少dll

4包含头文件engine.h

5这就可以去调用engine里的一些引擎函数了做好这些后,如果我们环境一样,

下面的代码应该能够编通并且正常执行,

其中包含了常用的一些函数,

一般来说使用Engine的时候也就用这些了。出现问题解决方法:

1 编译出现:

1>test.obj : error LNK2019: 无法解析的外部符号

_engClose,该符号在函数_main 中被引用

1>test.obj : error LNK2019: 无法解析的外部符号

_engSetVisible,该符号在函数_main 中被引用

1>test.obj : error LNK2019: 无法解析的外部符号

_mxDestroyArray,该符号在函数_main 中被引用

1>test.obj : error LNK2019: 无法解析的外部符号

_mxGetData,该符号在函数_main 中被引用

1>test.obj : error LNK2019: 无法解析的外部符号

_mxGetDimensions_730,该符号在函数_main 中被引用

1>test.obj : error LNK2019: 无法解析的外部符号

_mxGetNumberOfDimensions_730,该符号在函数_main 中被引用

1>test.obj : error LNK2019: 无法解析的外部符号

_engGetVariable,该符号在函数_main 中被引用

1>test.obj : error LNK2019: 无法解析的外部符号

_engEvalString,该符号在函数_main 中被引用

1>test.obj : error LNK2019: 无法解析的外部符号

_engPutVariable,该符号在函数_main 中被引用

1>test.obj : error LNK2019: 无法解析的外部符号

_mxGetPr,该符号在函数_main 中被引用

1>test.obj : error LNK2019: 无法解析的外部符号

_mxCreateDoubleMatrix_730,该符号在函数_main 中被引用

1>test.obj : error LNK2019: 无法解析的外部符号

_engOpen,该符号在函数_main 中被引用

1>D:\VSProjects\matlabtest\matlabtest\Debug\matlabtest.exe : fatal error LNK1120: 12 个无法解析的外部命令这个问题如果你按照上述配置好的话,这就很有可能出在兼容问题

上。因为2012b只提供64位版本,所有需要将vs工程变为64位。点击win32旁的下拉列表,选择配置管理器。在活动解决方案平台这里选择x64即可。重新编译一切ok。2 如果vs工程中还包含其他库是32位的,那么只能装matlab7 ,他只支持32位。而且matlab6.x版本又不支持vs2010.装好以后,需要配置兼容性。然后点击其桌面的快捷方式,修改其兼容性,我的系统是win7,改成了兼容vista,保存修改,点击成功运行。

相关文档
最新文档