《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 24623|回复: 13
收起左侧

[教程] 如何将M文件编译成独立运行的exe文件

    [复制链接]
发表于 2009-1-16 10:41:43 | 显示全部楼层 |阅读模式
一、生成独立可执行的程序(exe文件)步骤

    1、安装编译器。可有多种选择,MATLAB自带了一个LCC,当然如果你安装了microsoft visual c++ 6.0也可以;
    2、设置编译器。在matlab命令行输入mbuild -setup,选择安装的c编译器;


    3、调用编译器。输入mcc -m filaname,filaname为要转成exe的m文件;
    在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -m filaname;
    4、安装MATLAB7\toolbox\compiler\deploy\win32目录下的MCRInstaller。

   二、脱离matlab运行可执行程序

    MCR是由matlab的运行环境,占用不到400M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下:

..\MATLAB\R2007a\toolbox\compiler\deploy\win32

文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mglinstaller.exe)。

在其它没有安装Matlab的机器上运行exe文件前:

首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。

其次是要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,添加的方法是:
右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。

最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。

如果你的程序还附带有图片(如Version上的图标)、Web页面(如help文档),在编译的时候可能无法与M文件一起编译,不过这没有关系,先在计算机上执行一次你编译后生成的独立可执行文件,这时在同一目录下会生成一个以你编译后的程序名+_mcr结尾的文件夹,这时,你只需要把与程序相关的图标和Web页面拷贝到该文件夹中的Matlabprogram下面的一个子目录(一般与用于编译的文件夹名相同)中即可。
发表于 2009-2-23 19:41:34 | 显示全部楼层

将M文件编译成独立运行的exe文件

你能帮我把一份将M文件编译成独立运行的exe文件吗?QQ:498018194非常希望能得到你的帮助
 楼主| 发表于 2009-2-23 20:15:03 | 显示全部楼层
请到相应版块直接发布求助帖子,并上传你的M文件,只要我能够做到的,论坛都一定会尽力帮助你的
发表于 2009-8-20 10:35:59 | 显示全部楼层

回复 4# flg618730 的帖子

叫你选编译器,你可以随便选.
第一个是MATLAB自带的LCC编译器,
另一个是vc++

不过建议你选第二个.
发表于 2009-10-23 16:47:53 | 显示全部楼层
我照你写的方法试了,可是双击exe文件后跳出错误,说:不能cd到C:Documents and SettingsAdministratorLocal SettingsTempAdministratormcrCache7.10StartR2StartRoboSIMWORKING这个路径,StartRoboSIM是要打包的程序名,working这个文件或者文件夹的确没存在这个路径下,请问是什么问题啊?你能加我QQ么:310470273,谢谢!!!
发表于 2010-1-9 07:47:05 | 显示全部楼层
回复 1# dynamic


    刚好需要这方面的知识,谢谢!学习了!
发表于 2011-4-26 23:11:25 | 显示全部楼层
二、脱离matlab运行可执行程序

    MCR是由matlab的运行环境,占用不到400M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包
这里已经脱离了,为什么还要在其它没有安装Matlab的机器上运行exe文件前:

首先安装matlab的运行环境。
================================================
问一下啊,谢谢楼主!!!
发表于 2011-5-3 07:58:52 | 显示全部楼层
感谢楼主分享,正在学习这方面的知识。
发表于 2011-6-6 22:56:56 | 显示全部楼层
回复 dynamic 的帖子

楼主,如果是多个M文件的话,应该怎么编译呢?给个指示吧
发表于 2011-7-22 10:53:55 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 蜀ICP备19014457号 

GMT+8, 2020-11-29 03:32 , Processed in 0.052005 second(s), 11 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表