基于2018a Matlab GUI .m文件生成不依赖matlab可独立运行的exe文件
鉴于学习和工作上的需求,最近在使用Matlab来设计GUI界面,并将.m文件打包成.exe文件,现在记录自己学习过程中的一些心得。本人使用的是matlab 2018a(破解版).通过Matlab GUI生成的文件会有"filename.m"和"filename.fig"两部分文件组成,filename这个是自己代码的文件名。下面实现filename.m到filename.exe的过程。
第一种方法(利用Matlab自带的Aplpication Complier ):
首先配置.exe独立运行的Matlab环境,查看自己的Matlab有没有安装 。在Matlab命令行输入mcrinstaller,如果已经安装的话会弹出MCRInstaller.exe所在的路径,这个路径一般是在matlab安装目录下\toolbox\compiler\deploy\win64里面。
如果没有安装 MCRInstaller.exe,就会提示下面结果。
我们可以手动下载添加。在添加之前需要知道自己下载Matlab Runtime的版本号,在matlab命令窗口输入 version
这样就知道了2018a对应9.4版本,然后打开链接 https://ww2.mathworks.cn/products/compiler/matlab-runtime.html 下载对应版本即可
另一种方法是在matlab命令窗口输入 compiler.runtime.download,然后等待下载即可。下载完成后将下载的 MCR_R2018a_win64_installer.exe (版本不同,对应的名字会有差别)改名为MCRinstaller.exe(试过,不改名输入mcrinstaller没有结果)放在Matlab安装目录下\toolbox\compiler\deploy\win64目录下。
然后,在Matlab命令行输入mcrinstaller,如果弹出MCRInstaller.exe所在的路径,到这一步.exe独立运行的Matlab环境算是ok了。 在matlab命令行窗口输入 deploytool 命令,弹出如下窗口点击 Aplpication Complier
另一种方法是点击APP,找到Aplpication Complier,点击即可
打开Aplpication Complier后会出现下图界面
图中 "1"添加自己GUI的主程序.m文件。比如我的GUI的.m文件为file.m文件,点击添加进去即可
“2”和“3”可以选择exe打包方式及更改打包的exe文件名称。"2"来自Web,打包速度快,体积小。但在运行时需要有网络,用户得到.exe文件后,安装时,需要下载Matlab runtime,占用时间。“3”打包速度慢,但是用户根据简单提示,就能安装使用.exe文件。一般建议选择使用“3“打包方式。 “4”是设置打包文件的路径,"5"可以设置多类信息: 软件信息 .exe文件的封面、作者联系信息、软件功能描述,“6”软件执行所依赖的所有文件和文件夹。 在“1”添加完文件,更改保存路径和软件信息后点击右上角Package打包就行。
打包完成后在打包输出文件目录就会出现这样的3个文件夹
当用户电脑有对应版本的Matlab Runtime时,只需要运行 for_testing 文件夹中的文件;
如果没有,就需要for_redistribution文件夹中的文件和上面下载的MCRinstaller.exe文件一起打包(1G多),放入目标电脑中。然后点击MCRinstaller.exe安装,安装 路径没有要求,一般来说安装完成会自动添加环境变量,生成一个 v94的文件夹(因为是9.4版本,其他版本比如9.6就会生成v96)。然后运行or_redistribution文件夹里面的.exe程序即可。
第二种方法:(通过编译器来实现.exe文件)
首先,确定自己的Matlab有没有安装编译器 在MATLAB命令行输入 mex -setup或 mbuild -setup时(注意空格),如果出现
这就需要自己手动下载一个编译器了。使用正版软件直接可以访问错误提示中的链接去下载,破解版的可以在下面网址下载http://tdm-gcc.tdragon.net/download
下载完成后打开tdm64-gcc-9.2.0.exe即可安装
如果电脑64bit选择下面
这个最好直接在C盘或者D盘根目录
选择C/C++,Install.
安装完成后,Matlab命令串口输入setenv('MW_MINGW64_LOC','D:\TDM-GCC-64'),然后再输入mex -setup,会出现选择编译器的界面,选择c++编译。
在Matlab命令行输入 mcc -m filename.m,“filaname.m"为需要编译的”.m"文件。执行完毕之后,会在当前目录生成.exe、readme.txt、mccExcludedFiles.log、requiredMCRProducts.txt4个文件。最后把 MCRInstaller.exe生成的4个文件放在1个文件家下,复制到别台电脑(没安装Matlab)运行即可在没有MATLAB的电脑上运行.exe文件,需要先安装 MCRInstaller.exe一般来说安装完成会自动添加环境变量。安装完成之后,运行.exe即可。运行可执行文件时,会出现DOS黑屏,消除DOS黑屏的方法参见https://blog.csdn.net/sinat_35026778/article/details/89889434.
感谢:
https://blog.csdn.net/sinat_35026778/article/details/89889434
https://blog.csdn.net/sky_yiyi_9/article/details/88140283