调用 MATLAB 引擎错误:您的计算机中缺少 libeng.dll

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
  1. 将平台更改为 Active(x64)
  2. \n
  3. 将以下路径添加到 VC++ 目录\n
      \n
    • 可执行目录:C:\\Program Files\\MATLAB\\R2013b\\bin
    • \n
    • 包含目录:C:\\Program Files\\MATLAB\\R2013b\\extern\\include
    • \n
    • 参考目录:C:\Program Files\MATLAB\R2013b\bin\win64
    • \n
    • 库目录:C:\Program Files\MATLAB\R2013b\extern\lib\win64\microsoft
    • \n
    \n
  4. \n
\n

路径编辑

\n
    \n
  1. 编写了以下程序:

    \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}\n
    Run Code Online (Sandbox Code Playgroud)\n
  2. \n
\n

收到的错误:

\n
\n

该程序无法启动\xe2\x80\x99,因为您的计算机缺少 libeng.dll。尝试重新安装该程序来解决此问题。

\n
\n

Mik*_*Sam 5

我遇到了同样的问题,花了一天的时间才解决。这是我的答案。

实际上,您过度定义了不同的目录(请参阅“路径编辑”链接)。只做这些就足够了:

  1. 项目属性 -> VC++ 目录 -> 库目录。在此处添加路径C:\Program Files\MATLAB\R2016a\bin\win64(版本和路径可能不同,但想法是将路径设置为 MATLAB 的同一文件夹)
  2. 项目属性 -> C/C++ -> 常规 -> 其他包含目录。添加路径C:\Program Files\MATLAB\R2016a\extern\include(您的此文件夹的路径)
  3. 项目属性 -> 链接器 -> 常规 -> 其他库目录。添加路径C:\Program Files\MATLAB\R2016a\extern\lib\win64\microsoft
  4. 项目属性 -> 链接器 -> 输入 -> 其他依赖项。此处添加:libeng.lib;libmx.lib;
  5. 最后也是最重要的一点:将 MATLAB Engine dll 库的路径添加到您的 Windows。这一步可以解决您的问题。我们可以这样操作:我的电脑->右键:设置。打开窗口系统。左下角:高级系统设置

在此输入图像描述

高级选项卡

在此输入图像描述

在用户的环境变量中,按创建...按钮并添加以下变量: 变量名称:PATH 变量值:C:\Program Files\MATLAB\R2016a\bin\win64

此路径是您的 libeng.dll 所在位置的参考。重要时刻:可能需要重新启动VS,甚至重新启动计算机。

希望它可以帮助一些开始使用 MATLAB 和 C++ 工作的人!