当前位置:文档之家› Matlab编写的程序生成EXE可执行文件的方法

Matlab编写的程序生成EXE可执行文件的方法

Matlab生成EXE可执行文件1、M文件生成可执行文件1.1、Run timeserver的配置执行这个命令要在命令提示符下进入%matlab%\toolbox\runtime\bin\win32目录。

输入:rtsetup -f %matlab%\bin\win32\matlab.exe –s **** 。

这儿****代表你输入的N个数字或者字母,它将作为未来开发的应用程序的密码用来识别不同的文件是否出自同一程序。

在正常情况下,执行完这居命令以后,dos不会有任何提示符。

1.2、编写在matlab中运行的程序1.3、编写配置文件把toolbox\runtime\下面的两个模板文件matlabrt_template.m,和pathdefrt_template.m文件修改程自己的matlabrt.m和pathdefrt.m文件。

1.4、编译生成p文件把你要编译的源程序放在toolbox\local目录下一个子目录中,然后把这个目录设为matlab的当前目录――一定要保证这一点。

在matlab中输入如下命令:[LOG, DEPFUNOUT, PCODEOUT] = BUILDP({‗matlabrt‘});如果出现BUILDP finished but there may be file(s) with either problem symbols or EV AL-like constructs. Check BUILDP log for details. 。

这是很正常的,很多时候都会出现这个提示。

输入:Depfunout{1}把它的内容拷到toolbox\runtime\oem\的list.txt中去(如果没有list.txt则新建).1.5、打包,发布退出matlab,打开命令提示符,到toolbox\runtime\oem下,执行packege。

按照它的提示先后输入matlab的目录,文件列表名称(list.txt),还有应用程序的名称。

在toolbox\runtime\oem下生成一个setup程序。

2、GUI生成可执行文件EXE2.1 方法一一般我们在编写Matlab中的GUI时,我们都是生成一个fig文件和一个m 文件的,但是如果我们要生成独立的应用程序,就是exe程序时,最后让它把两个文件合成一个文件,这样容易生成。

方法是在figure窗口中点击file下的export 就行了,生成默认文件名为×_export.m文件。

(比如a_export.m)(说明:如果,同时有两个GUI文件,进行这样编辑,会报错!)2.1.1、安装编译器matlab complier如果你已经安装matlab complier就直接运行mcc -m a_export.m,此步就不需要做。

安装matlab complier的过程如下:在窗口中输入:mbulid -setup出现:Please choose your compiler for building standalone MATLAB applications:Would you like mbuild to locate installed compilers [y]/n?输入y,然后回车,出现Select a compiler:[1] Lcc-win32 C 2.4.1 in D:\MATLAB\R2007b\sys\lcc[0] NoneCompiler:如果你机器上有vc++之类的编译器的话,也会被列出来的,这里我们输入1,然后回车,出现如下:Please verify your choices:Compiler: Lcc-win32 C 2.4.1Location: C:\MATLAB\R2009a\sys\lccAre these correct?([y]/n):然后输入y,表示确认就行了,出现安装成功信息,如下:Trying to update options file: C:\Documents and Settings\... ...\Application Data\MathWorks\MATLAB\R2007b\compopts.batFrom template:D:\MATLAB\R2007b\bin\win32\mbuildopts\lcccompp.bat Done . . .2.1.2、生成EXE文件1. 在matlab的command窗口中输入:mcc -B sgl GUI.m或者mcc -m a_export.m,将生成的文件包一起考到待运行的机器。

2. 将<matlab path >/extern/lib/win32/mglinstallar.exel拷贝到到待运行机器上。

3.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在指定目录下解压缩出bin和toolbox两个子目录,其中在bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有37个。

可以将这些.dll考入system32, 也可以直接放在应用程序目录下。

而toolbox目录则必须与应用程序同一目录。

即:如果想把生成的exe程序在其他没有matlab的机子上运行,需要安装MCRInstaller,可以在matlab的安装目录里面搜索到。

这样把这个安装到没有matlab的机子上,就可以运行生成的exe程序了。

2.2 方法二2.2.1、转化为c/c++程序并编译为.exe先验证mcc是否可用,用matlab中的example验证即可,建议不用matlab 默认的lcc 编译器(可能有问题),可使用VC6编译器(按默认路径安装),由于带有界面,需要图像库支持,编译时应使用命令: mcc -B sglcpp pressure,编译生成若干c/c++源码,以及.exe文件、bin目录中figure菜单条/工具条文件(.fig)等程序发布需要.exe、bin\、.fig2.2.2、在未装matlab的电脑上运行程序需要数学运行时库、图像运行时库以及用到的工具箱mex文件前两者已经在\matlab\extern\lib\win32mglinstaller.exe压缩包中,将其解压,并在环境变量path中添加解压到的路径另外若程序中还用到其他工具箱的东西,那么需要将此工具箱中需要的mex文件也一并放在解压到的路径,子文件夹位置与matlab中的位置相同3. 在确保.exe程序可以运行的情况下可以用setup factory打包发布以下通过注册表自动添加path路径%--------------------------------------------------------------------------------------Screen.Next(); -- 进入下一个屏幕resultDialog = Dialog.Message("注意", "向环境变量中加入matlab数学库及图象库的安装路径?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);if (resultDialog == IDYES) then --加入安装路径strPath = Registry.GetValue(HKEY_CURRENT_USER, "Environment", "path", true); if strPath ~= "" thenstrPath = String.Concat(strPath, ";");endstrPathToAdd = SessionVar.Expand("%AppFolder%");strPathToAdd = String.Concat(strPathToAdd,"file://MATLAB6p5//bin//win32");-- 如果路径中无该位置,则加入if String.Find(strPath,strPathToAdd) == -1 thenstrPath = String.Concat(strPath, strPathToAdd);Registry.SetValue(HKEY_CURRENT_USER, "Environment", "path", strPath, REG_SZ);endend%--------------------------------------------------------------------------------------3、消除DOS窗口消除运行MATLAB生成的exe程序的dos黑屏的办法,基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:在命令窗口输入:cd(prefdir)edit compopts.bat在打开的文件最后添加以下语句:A.VC环境下:set LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS/ENTRY:mainCRTStartupB.LCC环境下:set LINKFLAGS=%LINKFLAGS% -subsystem windowsC. Borland:set LINKFLAGS=%LINKFLAGS% -aa保存以后,再重新编译m文件,生成的exe文件运行起来就没有dos窗口了如果你的m文件不是R2009根文件的话要吧这个bat文件拷贝到你要编译的m文件下再运行mcc编译否则也是不会消除DOS窗口的!对于2010版本上述的方法的失效,下面的方法的可以解决matlab2010生成exe消除DoS窗口最新版Matlab2010编译后用了之前的一些方法尝试消除黑框,发现无法实现。

去matlab官网看了看,上边有明确的方法/access/helpdesk/help/toolbox/compiler/f0-985134.html运行:mcc -e filename就可以了,实验成功。

教你隐去gui生成exe后,执行exe时出现的dos窗口前几天我在论坛里提了如题的问题,没有得到直接答复,但是感谢回帖,因为按照回帖的内容我找到了答案,验证了一下,可以用。

(有帖子可以下载具体操作,但我M币又不想花钱,只好自己去搞)首先,你到math的官网上/matlabcentral/fileexchange/loadFile.do?objectId=3909下载页面中的*.zip,就是页面中―download now:‖后的‗zip‘按钮。

相关主题