调查已部署的应用程序故障
应用程序在测试计算机上运行之后,可以在最终用户部署中隔离故障。您的应用程序的最终用户需要在他们的计算机上安装 MATLAB® Runtime。MATLAB Runtime 包括一组共享库,为 MATLAB 的所有功能提供支持。
您的应用程序在测试环境中成功运行后可能无法部署给最终用户的原因有很多。有关编写最终用户可使用的 MATLAB 代码的详细指南列表,请参阅编写可部署的 MATLAB 代码
安装 MATLAB Runtime
您的独立可执行文件或共享库所需的所有共享库都包含在 MATLAB Runtime 中。所有部署目标都需要安装 MATLAB Runtime。有关详细信息,请参阅下载并安装 MATLAB Runtime。
在 Linux 或 macOS 上更新动态库路径
有关安装 MATLAB Runtime 后在部署计算机上设置路径的信息,请参阅针对部署设置 MATLAB Runtime 路径。
缺少 DLL 的错误消息
错误消息表明缺少 DLL(例如 mclmcrrt
或 X_XX
.dllmclmcrrt
通常是由 MATLAB Runtime 安装不正确引起的。有关安装 MATLAB Runtime 的信息,请参阅下载并安装 MATLAB Runtime。 X_XX
.so
有时,MATLAB Runtime 和 Microsoft® Windows® 中包含的 DLL 版本不匹配。您可以使用进程监视器工具调查应用程序调用了哪些 DLL。有关将进程监视器与已部署的应用程序结合使用的信息,请参阅如何使用进程监视器排除程序执行故障?。
MATLAB Runtime 也可能安装正确,但 PATH
、LD_LIBRARY_PATH
或 DYLD_LIBRARY_PATH
变量设置不正确。有关设置环境变量的信息,请参阅针对部署设置 MATLAB Runtime 路径。
小心
不要通过移动 MATLAB Runtime 文件夹结构内的库或其他文件来解决这些问题。MATLAB Runtime 系统设计用于适应在同一台计算机上运行的不同 MATLAB Runtime 版本。文件夹结构是此功能的重要组成部分。
获取安装目录的写访问权限
已编译应用程序尝试的第一个操作是提取可部署存档。如果未提取存档,应用程序将无法访问已编译的 MATLAB 代码,并且应用程序将失败。如果应用程序对安装文件夹具有写访问权限,则第一次运行该应用程序时会创建一个名为
的子文件夹。创建此子文件夹后,应用程序不再需要写访问权限才能进行后续执行。 application-name
_mcr
部署新版本的应用程序
部署可执行文件的较新版本时,需要重新部署该可执行文件,因为它还包含嵌入的可部署代码存档。可部署存档是特定编译会话的关键。每次重新编译应用程序时,都会创建一个新的、匹配的可部署存档。删除现有的应用程序文件夹并运行新的可执行文件,以确保应用程序可以扩展新的可部署存档。如上所述,需要写访问权限来扩展新的可部署存档。