MATLAB生成可执行文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB生成可执行文件(.exe文件)
2010-07-28 14:59:25| 分类:matlab学习
要将用Matlab语言编写的函数文件编译成可独立执行的*.exe文件(即可脱离Matalab环境的执行程序),首先要安装和配置好Matlab Compiler,一般来说,在安装Matlab时就已经安装了相应版本的Matlab Compiler。只是不同版本的Matlab,其编译器的使用方法有一定的差异,这一点要引起一定的注意。
在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:
Mbuild –setup
然后根据提示执行相应的操作,使用者可根据自己计算机中现有编译器的情况选择合适的编译器,如VC++ 6.0、VC++7.0、Bland C的编译器等,目前Matlab好象还不支持VC++8.0(我计算机安装的就是VC++2005,Matlab就无法识别)。当然,如果你的计算机里根本就没有安装其他任何语言的编译器,也可选择Matlab自带的Lcc编译器,其实这个编译器对大多数用户已经够用了(我就是选择的Matlab自带的Lcc编译器)。
配置好编译器后,自然就是对自己编写的M文件进行编译了。
将M文件编译为独立可执行文件的语法是:
>>mcc –m fun1.m fun2.m …..
其中fun1就是最后的可执行文件的名称。
另外,也可通过采用命令开关-o指定编译最终目标文件的名称,如mcc –m main.m –o mrank_main,就是将编译后的文件指定为mrank_main.exe。
编译后的生成文件根据编译器的版本不同而不同。具体的可参阅相关资料。
如果要在没有安装matlab的计算机上执行编译后的程序,首先要将MATLAB701 toolbox compiler deploy win32中的MCRinstaller.exe安装到该计算机上(7.0 以前的版本是mglinstaller.exe)。
其次是要将“MCRinstaller.exe安装目录runtimewin32”这个路径添加到该计算机的环境变量中,添加的方法是:
右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
第三步是将编译生成的相相关文件拷贝到同一目录下(当然其他目录亦可)。
第四步是打开MS-dos操作窗口,进入到编译后的*.exe程序所在的目录,执行编译生成的*.exe文件即可。
需要说明的一个问题:
如果你的程序还附带有图片(如Version上的图标)、Web页面(如help 文档),在编译的时候可能无法与M文件一起编译(因为我没有试过,也
没有看到有关这方面的介绍),这没有关系,先在计算机上执行一次你编译后生成的独立可执行文件,这时在同一目录下会生成一个以你编译后的程序名+_mcr结尾的文件夹,这时,你只需要把与程序相关的图标和Web页面拷贝到该文件夹中的Matlab program下面的一个子目录(一般与用于编译的文件夹名相同)中即可。
其他的方法还有:(以下是网上搜索到的方法,没有试验过,有兴趣的朋友可以试一试)
方法
方法二:如何将gui生成exe ?
已有gui.m文件和gui.fig文件
1 在matlab的command窗口中输入
mcc -B sgl GUI.m
2.将上步生成的文件包括*.m 文件和*.fig文件一起考到待运行的机器
此时仍需matlab所必需的动态连接库。
3. 将
4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在指定目录下解压缩出bin和toolbox两子目录,其中在binwin32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有37个。可以
将这些.dll考入system32, 也可以直接放在应用程序目录下。而toolbox目录则必须与应用程序同一目录。
5.大功告成。
方法三:运行mcc -B sgl GUI.m 生成exe文件,把GUI.exe文件和GUI.ctf文件拷贝到目标电脑上,然后在目标电脑上安装MCRInstaller.exe ,安装完以后,我点击GUI.exe,它显示:this application has requested the Runtime to terminate it in an unusual way。这个可能是哪里出错了呢?
Solution:
The segmentation violation can be caused due to a corruption in either the profile of the current user or by corrupted Windows libraries. In order to determine which is the cause, try logging in as a different username and run MATLAB.
If you are able to successfully launch MATLAB under a different username:
1. Log onto the machine, as the user that is receiving the error.
2. On your desktop, click on Start > Run
3. Type "regedit" in the Open text field and click OK, this will bring up the Registry Editor
4. In the Registry Editor expand the following folders: HKEY_CURRENT_USER > Software > MathWorks > Matlab