问题,包括MATLAB“engine.h”为C++代码
我试图从运行MATLAB文件的example code,但是当我尝试建立在Visual Studio中的项目,我得到这个错误问题,包括MATLAB“engine.h”为C++代码
fatal error C1083: Cannot open include file: 'engine.h': No such file or directory
事实是,在文档中我找不到在哪里可以找到标题链接,他们表现出的例子,好像没有必要做别的什么,只是做一下如何解决这个问题
#include "engine.h";
任何想法?
编辑
我解决的第一个问题,但现在我得到了一些错误reated缺少库:
1>engwindemo.obj : error LNK2019: unresolved external symbol _engClose referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _mxGetClassName referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engGetVariable referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engOutputBuffer referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _mxDestroyArray referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engEvalString referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engPutVariable referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _mxGetPr referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _mxCreateDoubleMatrix_730 referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engOpen referenced in function _main
我设置Path变量如文档中说,将库路径和增加了一些图书馆,现在我不知道我还能做些什么。我还重新启动了VisualStudio,以使Path变量有效。
在此先感谢。
我最终解决了这个问题。我正在构建一个WIN32项目,而matlab是x64,所以VisualStudio在尝试链接64位平台时会出现错误。解决方案是将Active Solution Platform更改为x64,位于Project Properties - > Configuration Manager内。
在下面的link中有很好的解释。
无论如何答案,他们是有用的。
所以,总结,才能够编译和运行在VisualStudio2008和Matlab2010与engine.h一个C++代码,需要以下步骤:
1.-在高级系统设置 - 设置路径变量>环境变量:C:\ Program Files文件\ MATLAB \ R2010a版本\ BIN \ Win64的(或者libeng.dll所在的路径)
2:在VisualStudio中,在其他包括C的目录链接的项目属性++ - >通用: “C:\ Program Files \ MATLAB \ R2010a \ extern \ include”
3.-在项目属性,接头 - >一般情况下,附加库目录: “C:\ Program Files文件\ MATLAB \ R2010a版本\ EXTERN \ LIB \ Win64的\微软”
4.-添加在连接器 - 以下库>附加依赖: libeng.lib libmx.lib
5.-作为链接解释了活动的解决方案平台更改为64位,在配置管理器。
您是否将MATLAB include目录添加到项目的包含路径中? 。该目录应该像“C:\ Program Files \ MATLAB \ R2010a \ extern \ include”
如果您忘记了,请将包含libmat.dll libmx.dll等文件夹添加到您的路径中。对我来说,那是:
C:\ Program Files文件\ MATLAB \ R2012a \ BIN \ Win64的
虽然Jav_Rock's answer是完全正确的,我想加入的要点之一的信息:
在高级系统设置 -1.-设置路径变量>环境变量:C:\ Program Files文件\ MATLAB \ R2010a版本\ BIN \ Win64平台(或者 libeng.dll所在的路径)
我花了三个小时了解它的含义,所以我想为未来的研究人员澄清这一刻。 您需要将MATLAB Engine dll库的路径添加到Windows。 我们可以这样做:
我的电脑 - >右键单击:设置。打开的系统窗口。左下角:高级系统设置
高级选项卡
在为您的用户按创建...按钮,添加这个环境变量: 变量名:PATH变量值:C:\ Program Files \ MATLAB \ R2016a \ bin \ win64
此路径是您的libeng.dll所在位置的参考。 重要时刻:它可能需要重新启动VS甚至重新启动计算机。
不,我会看看,谢谢 – 2012-01-10 08:37:32
但是哪个是包含目录?我无法在Matlab文件夹中找到它。 – 2012-01-10 08:41:58
像“C:\ Program Files \ MATLAB \ R2010a \ extern \ include” – WebMonster 2012-01-10 08:42:22