我正在尝试从MATLAB Doc运行example code,但是当我尝试在Visual Studio中构建项目时,我收到此错误
fatal error C1083: Cannot open include file: 'engine.h': No such file or directory
事实是,在Doc中我无法找到链接它的标题的位置,它们显示示例好像没有必要做任何其他事情,只需要做
#include "engine.h";
有关如何解决此问题的任何想法?
修改
我解决了第一个问题,但现在我得到一些错误依赖于缺少的libs:
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变量,设置了lib路径并添加了一些库,现在我不知道我还能做什么。我还重新启动了VisualStudio,以使Path变量有效。
提前谢谢。
答案 0 :(得分:12)
我最终解决了这个问题。我正在构建一个WIN32项目,而matlab是x64,因此当您尝试链接64位平台时,VisualStudio会出错。解决方案是将Active Solution Platform更改为x64,在Project Properties中 - >配置管理器。
以下link对此进行了详细解释。
无论如何,谢谢你的答案,它们很有用。
总而言之,为了能够使用engine.h在VisualStudio2008和Matlab2010中编译和运行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 \ microsoft”
4.-在Linker->附加依赖项中添加以下库: 的 libeng.lib libmx.lib 强>
5.-按照链接中的说明,在Configuration Manager中将Active Solution Platform更改为x64。
答案 1 :(得分:2)
您是否已将MATLAB include目录添加到项目的包含路径中? 。该目录应该类似于“C:\ Program Files \ MATLAB \ R2010a \ extern \ include”
答案 2 :(得分:0)
如果您忘记了,请将包含libmat.dll libmx.dll等的文件夹添加到您的路径中。对我来说是:
C:\ Program Files \ MATLAB \ R2012a \ bin \ win64