E. *_*ash 1 c++ matlab matlab-engine
尽管网上有很多资源可以解决这个问题,但我还是很难从一个简单的 .cpp 程序调用 MATLAB。
\n我的目标:
\n使用 Microsoft Visual Studio 2010 Professional 64 位构建 .cpp 程序,\n为内置函数和图形调用 MATLAB Engine (MATLAB R2013b 64 位)
\n我做了什么:
\n在 .cpp 文件属性页中,我有:
\n编写了以下程序:
\n// mEng.cpp : Defines the entry point for the console application.\n// libeng.dll is in C:\\Program Files\\MATLAB\\R2013b\\bin\\win64\n\n#include "stdafx.h"\n#include <Engine.h>\n#include <matrix.h>\n#include <iostream>\n#include <string>\n#include <cmath>\n\n#pragma comment (lib, "libmat.lib")\n#pragma comment (lib, "libmx.lib")\n#pragma comment (lib, "libmex.lib")\n#pragma comment (lib, "libeng.lib")\n#pragma comment (lib, "libut.lib")\n\nusing namespace std;\n\n\nint main()\n{\n Engine *m_pEngine;\n if (!(m_pEngine = engOpen(""))) \n {\n fprintf(stderr, "\\nCan\'t start MATLAB engine\\n");\n return EXIT_FAILURE;\n }\n\n //Now call the MATLAB script through MATLAB Engine\n\n engEvalString(m_pEngine, "script");\n cout << "Hit return to continue\\n\\n";\n fgetc(stdin);\n\n //Close the MATLAB Engine\n\n engClose(m_pEngine);\n return EXIT_SUCCESS;\n}\nRun Code Online (Sandbox Code Playgroud)\n收到的错误:
\n\n\n该程序无法启动\xe2\x80\x99,因为您的计算机缺少 libeng.dll。尝试重新安装该程序来解决此问题。
\n
我遇到了同样的问题,花了一天的时间才解决。这是我的答案。
实际上,您过度定义了不同的目录(请参阅“路径编辑”链接)。只做这些就足够了:
高级选项卡
在用户的环境变量中,按创建...按钮并添加以下变量: 变量名称:PATH 变量值:C:\Program Files\MATLAB\R2016a\bin\win64
此路径是您的 libeng.dll 所在位置的参考。重要时刻:可能需要重新启动VS,甚至重新启动计算机。
希望它可以帮助一些开始使用 MATLAB 和 C++ 工作的人!