MATLAB生成exe脱离matlab运行可执行程序

      

如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程序发布在没有安装MATLAB的电脑上?下面将一步步实现:

 

一、生成独立可执行的程序(exe文件)步骤


1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS2010实现。

2、设置编译器。

在matlab命令行输入mbuild  –setup以及mex –setup,选择安装的c编译器(可能会选1也可能选0,这个要看你显示的是什么)。选择y  一直到done

3、调用编译器。

当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件,例如你的名字是im.m文件,那么fileaname就用im替换

 

二、脱离matlab运行可执行程序(换一个电脑运行exe)


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

<matlab path>\toolbox\compiler\deploy\win64

文件名为MCRInstaller.exe。

步骤:

(一)先把这个安装在新电脑上

(二)然后配置环境

右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将路径C:\Program Files\MATLAB\MATLAB Compiler Runtime\v80\runtime\win64复制到里面就可以了。

 

三、运行exe,黑屏一闪


     美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:

消除运行MATLAB生成的exe程序的dos黑屏的办法

基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:

方法: 在命令窗口输入:

cd(prefdir)

edit compopts.bat

在打开的文件最后添加以下语句(添加哪个要看你的电脑):

A.VC环境下(我的是添加这个因为是vs2010):

set LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS/ENTRY:mainCRTStartup

B.LCC环境下:

set LINKFLAGS=%LINKFLAGS% -subsystemwindows

C. Borland:

set LINKFLAGS=%LINKFLAGS% -aa

保存以后,再重新编译m文件,生成的exe文件运行起来就没有dos窗口了

这个方法在使用后生成的exe再到没有任何安装MATLAB的机子上运行也不会有黑屏了。

 

  • 39
    点赞
  • 246
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
Simulink生成独立的exe文件的一些方法-EclipseStepByStep_v2_final.ppt 最近有很多会员发帖提问这个问题,现在我集中说明一下。 Simulink产生的一般是mdl文件。 那么如何把这些mdl文件,制作成exe文件? 其实这里面有一个过程: mdl文件 ——》第三方程序(比如说c,或者是java,或者是c 等等 -》编译成exe文件 这样做的好处是,在中间这个过程当中,你可以加一些另外的程序,这样可以实现整个系统的自动化。 当然,即使你不加,也没有关系。 那么我们通常用eclipse来编译这些程序(因为是免费的,不像微软那些程序,很贵,而且兼容性好,可以实现跨平台) 这里,是一个使用eclipse建立project的ppt文件,讲的很详细,一步一步走即可: EclipseStepByStep_v2_final.ppt (838.5 KB, 下载次数: 182771) 2009-1-13 14:21 上传 点击文件名下载附件 =================================================================================== 好了,现在有了编译环境以后,下一步就是如何把mdl文件,转换成C语言(当然,其他语言也可以) 大家看一下下面这个图形: 登录/注册后可看大图 matlab34.jpg (60.87 KB, 下载次数: 2723) 下载附件  保存到相册 2009-1-13 14:24 上传 其实只是用到了一个Real time workshop的工具箱。 有些会员就说,我的程序不需要real time怎么办? 这里面,大家有一个理解上的错误,永远记住这句话: 一个系统支持Real Time,那么它肯定支持非Real Time 那么这个时候,你只要看一下帮助里面,Real Time Workshop是如何把simulink代码生成c代码就可以。 当然,从命令手讲的话,也就是emlc命令。 这里面牵涉到很多变量的转换问题,必须你亲自尝试了,才能明白,有所体会! rtw_gs.pdf (1.09 MB, 下载次数: 168263) 2009-1-13 14:34 上传 点击文件名下载附件 Real Time Workshop帮助文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值