在同一台机器上运行 Matlab MCR 和 MATLAB
Posted
技术标签:
【中文标题】在同一台机器上运行 Matlab MCR 和 MATLAB【英文标题】:Running Matlab MCR and MATLAB on the Same Machine 【发布时间】:2012-03-20 20:59:19 【问题描述】:我无法让已编译的 .exe 文件使用 MCR 而不是 Matlab 运行(我可以说是因为该程序使用了多个线程,如果它使用 MCR 运行它就不会这样做)。 MATLAB 文档 (http://www.mathworks.com/help/toolbox/compiler/f12-999353.html) 说:
“要针对 MCR 安装运行已部署的组件,mcr_root\ver\runtime\win32|win64 必须出现在 matlabroot\runtime\win32|win64 之前的系统路径中。
如果 mcr_root\ver\runtime\arch 首先出现在编译的应用程序路径上,则应用程序使用 MCR 安装区域中的文件。
如果 matlabroot\runtime\arch 出现在已编译的应用程序路径的第一个位置,则应用程序使用 MATLAB Compiler 安装区域中的文件。"
谁能帮我把这些点联系起来?我不知道这是什么意思。谢谢!
【问题讨论】:
【参考方案1】:我遇到了同样的问题:我编译的代码是多线程的,这是我不想要的。
通过编译选项解决了问题:
-R -singleCompThread
【讨论】:
谢谢——这是一个非常有用的选择。我认为我的情况还有另一个问题,因为当我在没有 MATLAB 的计算机上运行相同的 exe 时,它只使用一个线程,所以我不认为它是 exe 本身。我更关心使用 MCR 与 MATLAB,而不是线程本身的数量。【参考方案2】:您需要在 Windows 中正确设置 PATH 全局环境变量。你如何做到这一点完全取决于 Windows 版本。
这是来自 Google 的第一个链接,查询“在 Windows 上设置路径”:http://www.computerhope.com/issues/ch000549.htm
这个变量是一个目录列表。确保您在此列表中具有 MCR 可执行文件的目录比具有 MATLAB 可执行文件的目录更早。
【讨论】:
感谢您的回复。我尝试设置 PATH 变量,但没有任何改变。该列表也不包含任何具有 MATLAB 可执行文件的目录。 通过getenv('path')
将PATH 变量签入您的代码。设置路径后也尝试重新启动计算机。以上是关于在同一台机器上运行 Matlab MCR 和 MATLAB的主要内容,如果未能解决你的问题,请参考以下文章
如何为指定的 Matlab 运行时 (MCR) 编译 Matlab 脚本
如何检查 Matlab 编译器运行时 (MCR) 在我的电脑上是不是正常工作?
Windows 8 上的 Matlab 构建器 NE / MCR