MATLAB .M文件编译成.EXE并在无MATLAB的电脑上运行的一个方法

做了半年的GUI的毕设,说说GUI编译的一个方法吧

首先确保安装了MATLAB以及VS(只是一个方法,不是唯一的),我的是MATLAB(2010A)和MS VISUAL STUDIO 2010,,需要三个主要步骤:

1.然后做编译前的准备工作,MATLAB安装编译器:

%在MATLAB命令窗中输入

mbuild -setup

%会出现

Please choose your compiler for building standalone MATLAB applications: Would you like mbuild to locate installed compilers [y]/n?

%本人的是n,然后出现的是

Select a compiler: [1] Lcc-win32 C 2.4.1 [2] Microsoft Visual C++ 6.0 [3] Microsoft Visual C++ 2005 SP1 [4] Microsoft Visual C++ 2008 Express [5] Microsoft Visual C++ 2008 SP1 [0] None Compiler:

%我选择的是5,当然,我的不是2008,还有后文

Your machine has a Microsoft Visual C++ 2008 SP1 compiler located at D:\Program Files\Microsoft Visual Studio 9.0. Do you want to use this compiler [y]/n?

%依然是n,继续

Please enter the location of your compiler: [C:\Program Files\Microsoft Visual Studio 9.0]

%这里方括号里的是默认的,估计是提示,我输入的是

C:\Program Files\Microsoft Visual Studio 10.0

%然后

Please verify your choices: Compiler: Microsoft Visual C++ 2008 SP1 Location: C:\Program Files\Microsoft Visual Studio 10.0 Are these correct [y]/n?

%这次是y了,

**************************************************************************** Warning: Applications/components generated using Microsoft Visual Studio 2008 require that the Microsoft Visual Studio 2008 run-time libraries be available on the computer used for deployment. To redistribute your applications/components, be sure that the deployment machine has these run-time libraries. **************************************************************************** Trying to update options file: C:\Documents and Settings\Administrator\Application Data\MathWorks\MATLAB\R2010a\compopts.batFrom template: D:\PROGRA~1\MATLAB\R2010a\bin\win32\mbuildopts\msvc90compp.batDone . . .

%说明已经成功安装了,至于能够编译正确,估计和VS2008到VS2010的项目的转换有点关系,还算我运气好吧

2.编译器安装结束后,接下来的就是编译工作了,主要是编译.m文件,我的GUI程序就直接编译.fig文件对应的那个.m文件就好了。%在命令窗口输入

mcc -m filename.m

%即完成了文件的编译,多说几句,尝试了多个GUI程序,以及多个.m文件的情况,只用编译主GUI程序,其他可以在无matlab的情况下正常调用,多个.m文件也是一样的,只用编译主程序即可

3.编译完成,就可以在自己的电脑上面任意运行了不过现在还不能在别人的电脑上运行,纠结死了,于是进行了多次试验,在3台不同配置的电脑上测试了,需要的环境有三个,MATLAB运行环境(这个就不解释了),VS2010运行环境(我用的VS2010,至于其他版本找对应的就可以了),还需要一个就是.NET FRAMWORK 2.0

MATLAB运行环境的安装程序在自己的MATLAB的目录下,2010A的目录为D:\Program Files\MATLAB\R2010a\toolbox\compiler\deploy\win32给出的是绝对路径,根据自己的情况改吧,找到MCRInstaller.exe这个程序,就是她了。

(找不到的话,在MATLAB的COMMAN WINDOW里面输入mcrinstaller回车即可,只保证2012以后的版本能用,现在换版本了,这句是加的 – 。- )

然后是Microsoft Visual C++ 2010 Redistributable Package,给一个下载地址吧,是迅雷的,不行的就去百度吧

最后是Microsoft .NET Framework: 2.0简体中文版:x86多国语言版:

只要在想要运行自己编译的程序的电脑上安装这三个环境,把自己编译好的程序和所有’自定义的’函数以及’自定义的’GUI程序等等拷到那台电脑上(自定义的GUI的.fig和.m文件都要拷,主要针对像errordlg和warndlg这种自带的GUI不需要拷来说的) 。

另外,我的程序需要运行的时候那个CMD窗口,因为有些警告是通过CMD传达的,想要去除CMD的窗口也很方便,如果想了解更多的话,百度吧,给个我觉得写得很好的链接看看:Matlab .M文件编译成可执行文件.exe :

补充几句,这也是这篇文章写了以后2年左右了。参加过一次MATLAB的研讨会,咨询了一下这方面的问题,MATLAB很多算法都是用C写的,所以想实现脱离MATLAB运行环境的EXE,就需要你的代码里面只有用这些用C写的函数(具体是哪些我也不知道 – . – ),然后将MATLAB代码转换为C代码,在VS中编译即可。但如果你写的MATLAB的代码中带有绘图、界面方面的东西,这样做就不行了,因为绘图这部分不是用C实现的。

另外,本人在使用这个方法编译成为EXE时,写的是一个界面,仅仅将主界面编译成为了一个EXE,而自己写的其他函数任然保持着.m文件,放在同一个文件夹下的,这样在运行主界面的EXE时,仍然是可以调用这些.m文件的,最大的好处就是如果你需要修改这些.m文件实现的功能时,不需要重新编译。

获致幸福的不二法门是珍视你所拥有的、遗忘你所没有的

MATLAB .M文件编译成.EXE并在无MATLAB的电脑上运行的一个方法

相关文章:

你感兴趣的文章:

标签云: