matlab 编译可执行exe文件方法

好久没有更新博客了,因为这两周主要在用matlab写一个简单的线性水文响应系统,后面这个系统我发布到博客上,关于matlab 编译可执行exe文件方法,应该说网上这方面的资料非常多,但这里我还是想记录一点东西。在matlab中主要有两种方法完成matlab程序的编译:

1. mcc编译

用这种方法进行编译,需要先安装matlab的编译器。具体方法,在matlab 的command window 中输入mbuild -setup,安装提示即可完成安装(可以选择matlab自带的LCC编译器或者你电脑上安装的其他编译器),网上有安装方法,很简单,这里不赘述。

安装好编译器后就可以进行编译了。方法是在command window 输入mcc -options yourmain other sub fucntions 其中options可以选择m,e,或者其他,m或者e都是用于生产exe文件,其它包括dll的编辑。 yourmain就是你的主函数,other sub funtions为辅助函数。比如:mcc -m main.m submian. 就可以完成编译了。如果函数中需要用到文件,可以将文件一起编译到exe中。方法是在前面的命令后面加上-a filename.

2. deploytool编译

mcc编译比较方便,但是当有很多辅助函数或者文件的时候,用上书方法编译就很慢,其实在matlab中游一个deloytool工具,可以非常方便的编译和打包exe文件。打开deploytool工具有两种方法,一种是在command window 中输入deploytool,就可以启动;另一种方法是在matlab的菜单栏中选择desktop,在里面选择这工具即可。具体编译方法很简单,参考:http://www.bu.edu/tech/support/research/software-and-programming/common-languages/matlab/standalone/standalone-gui-method/.

这里再说下打包,打包和平常所说的打包有点区别,这里打包可以选择zip和exe两种格式。zip就是平常的打包,而exe打包是生成一个可执行打包的exe文件,双击文件,完成解压或者文件安装。

(1)GUI文件的编译,需要将.m和.fig文件放在同一个目录下编译,否则会出错。

(2)只能编译function格式的M 文件,而不能编译脚本文件,但是function格式的M 文件内可以包含脚本文件。

(3)在load和save函数中,不能使用动态命令的方式存取文件,否则不能编译。

(4)help、lookfor、clc、home、savepath,simulink等函数都不能正常使用。

(5)用于调试程序的函数不能正常使用。

(6)执行matlab exe文件时,会先弹出一个dos对话框,用于调试,可以不让这个窗口出现,方法是在编译前,在command window中输入 cd(prefdir);edit compopts.bat。在打开的文件末尾加上,set LINKFLAGS=%LINKFLAGS% -subsystem windows 。当然如果你安装的不是matlab的编译器,是C或者C++编译器,则需要添加其他语句。这里不赘述。

 (7)在没有安装matlab的电脑上运行编译的exe文件,需要先MCRInstaller.exe文件,该文件位于MATLAB安装目录下的\toolbox\compiler\deploy\win32目录内。所以发表matlab的程序时,要将这个文件和你的可执行文件一起打包发布。

Updated: 2014-12-09 — am11:11

Leave a Reply

  Subscribe  
Notify of