sword

在没有安装MATLAB的电脑上运行MATLAB程序
概述最近由于某种需求,需要在没有安装MATLAB的电脑B上运行MATLAB编写的程序,且电脑B上没有安装软件的权限...
扫描右侧二维码阅读全文
07
2020/04

在没有安装MATLAB的电脑上运行MATLAB程序

概述

最近由于某种需求,需要在没有安装MATLAB的电脑B上运行MATLAB编写的程序,且电脑B上没有安装软件的权限!度娘上查了很多办法,基本上都是:
1、先在有MATLAB的电脑上把程序编译成exe可执行文件,
2、编译在电脑A上安装MCRinstall.exe动态链接库。
但是呢,电脑没有软件安装权限怎么办?可不可以不安装呢?研究了一下,还是实现可以滴!

实现方法

以MATLAB 2017b为例
一、编译exe可执行文件
1、添加编译器
一般MATLAB是自带编译器的,在命令行窗口输入mbuild -setup,会提示选择编译器,不过2017b貌似没有提示选择,而是提示推荐下载MinGW64 Compiler编译器。可以通过Add-On(附加功能管理器)添加,也可以手动下载安装。(不想安装的,可以用MATLAB自带编译器,这一步略过直接下一步即可!)
请输入图片描述

请输入图片描述

请输入图片描述

2、编译,命令行窗口依次输入以下命令即可。

#设置编译器(用MATLAB自带编译器的略过)
mbiuld -setup

#编译文件,filaname.m为要转成exe的m文件
mcc -m filaname.m

3、运行以上命令后会在当前文件夹生成filaname.exe文件
请输入图片描述

二、配置脱离MATLAB的运行环境
1、找到MCRinstaller文件
在命令行窗口输入mcrinstaller,即可得到MCRinstaller所在路径

请输入图片描述

2、安装MCRinstaller
可以在已经安装MATLAB的电脑上安装,也可以在另一台电脑上安装,这里我就直接在当前win10电脑上安装!
双击MCRinstaller安装,路径选择当前文件夹,也可以选择自己可以找得到的地方,这里我选择F:\code\matlab路径,一步步往下安装完成即可。

3、在配置另一台没有MATLAB的电脑B上配置运行环境

3.1 上一步安装MCRinstaller后会生成一个名字为v93的文件夹,其他版本应该也类似,然后把这文件夹整个复制到电脑B上(这里仍然放在了F:\code\matlab文件夹,也可以放在其他路径).

3.2 配置环境变量:

我的电脑-->属性-->高级系统设置-->环境变量

环境变量分为用户变量和系统变量,设置其中一个即可,这里以设置用户变量为例,

查看一下有没有Path这个变量名,没有的话新建,有的话编辑变量名为Path的变量,在值最后添加路径(注意英文分号隔开,RUNTIMEPATH改为自己运行环境文件夹存的地方,配置完记得保存!)RUNTIMEPATH\v93\runtime\win64

请输入图片描述

请输入图片描述

请输入图片描述

4、在电脑B上双击一下filename.exe
看看是不是可以运行了!(启动很慢,可以在资源管理器里面看看这个进程内存占用是不是缓慢增加,缓慢增加说明在启动中),运行时会弹出黑框,如果报错会退出,看不到错误,所以编译exe可执行文件前,程序应该调试好!

其他

MATLAB编译生成的exe可执行文件一般启动很慢,相当于启动MATLAB的时间,但是小小的exe每次这样太耗时间了,有没有方法优化呢?方法还是有的,参考文章:Speeding up compiled apps startup

设置环境变量
变量名为:MCR_CACHE_ROOT
路径为 C:\Documents and Settings\Matlab Cache\(也可以自定义缓存文件夹)

原理:每次启动exe都会解压缩一些东西,关闭exe后就会删除掉,设置了MCR_CACHE_ROOT环境变量后,exe会解压文件到自己设置的路径下,关闭exe后不会删除,这样下次启动exe就可以节省解压缩的时间,以此来提高启动速度!!!

Last modification:April 9th, 2020 at 10:52 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment