
方法一:
已有guim文件和guifig文件
1 在matlab的command窗口中输入
mcc -B sgl GUIm
2将上步生成的文件包括m 文件和fig文件一起考到待运行的机器,此时仍需matlab所必需的动态连接库。
3 将 <matlab path >/extern/lib/win32/mglinstallarexel拷贝到到待运行机器上
4在机器上先运行mglinstallarexe, 然后选择解压目录,将在将在指定目录下解压缩出bin和toolbox两个子目录,
其中在binwin32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共
有37个。可以将这些dll考入system32, 也可以直接放在应用程序目录下。
而toolbox目录则必须与应用程序同一目录。
方法二:
matlab编程很方便,强大的矩阵运算功能,很多好用的工具箱,但是一般程序都要在matlab环境中运行,能否脱离这个环境打包发布,matlab也提供了这样的工具。
1 转化为c/c++程序并编译为exe
先验证mcc是否可用,用matlab中的example验证即可。
建议不用matlab默认的lcc 编译器(可能有问题),可使用VC6编译器(按默认路径安装)。
由于带有界面,需要图像库支持,编译时应使用命令: mcc -B sglcpp pressure
编译生成若干c/c++源码,以及exe文件、bin目录中figure菜单条/工具条文件(fig)等
程序发布需要exe、bin、fig。
2 在未装matlab的电脑上运行程序需要数学运行时库、图像运行时库以及用到的工具箱mex文件。
前两者已经在matlabexternlibwin32mglinstallerexe压缩包中,将其解压,并在环境变量path中添加解压到的路径。
另外若程序中还用到其他工具箱的东西,那么需要将此工具箱中需要的mex文件也一并放在解压到的路径,子文件夹位置与matlab中的位置相同。
3 在确保exe程序可以运行的情况下 可以用setup factory打包发布。
由于时间仓促,简单地学习了如何将m文件打包为exe文件
首先介绍一下MATLAB编译器
MATLAB编译器
功能
1、产生C源码,并进而生成MEX文件。这种MEX文件的优点是:一,当程序变量为实数,或向量化程度较低,或含有循环结构时,采用该法可提高运行速度;二,与ASCII码的M文件不同,MEX文件采用二进制代码生成,能更好地隐藏文件算法,使之免遭非法修改。
2、产生C或C++源码,以便与其他C/C++模块结合行成独立的外部应用程序。运行所产生的应用程序,无需MATLAB环境的支持,但是往往需要MATLAB提供的C/C++数学库;如果调用了MATLAB绘图指令,则还需要MATLAB提供的C/C++图形库
3、产生C MEX的S函数,与Simulink配合使用,以提高S-函数的运行速度
4、产生C 共享库(动态链接库)或C++静态库,他们的使用无需MATLAB环境的支撑,但是需要MATLAB的数学库
局限性
1、无法编译脚本文件
2、不支持用户自定义对象
3、不支持eval,input,inline等函数
4、不支持的MATLAB的Java接口
脚本文件改写为函数文件
M脚本文件不能直接被MATLAB编译器所编译,解决方案:先把脚本M文件改写成函数M文件,然后再对这函数文件进行编译。
编译器的配置:
在MATLAB命令窗中运行mex –setup
一般matlab需要搭配一个VS来做为C/C++编译器。VS (Visual Studio) 是微软开发的C/C++编译器。lz可以安一个VS2011。 如果非必须,建议lz装稍微旧一点的matlab,这样至少不会出现大家都没遇到过的问题。比如matlab2012b或2013b。
我也是最近才搞定的这个问题,按下述步骤进行,就没有问题,我已经运行成功,但是遇到你程序的bug的话,便会出现错误,关闭整个程序 希望这些对你有用 如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程序
以上就是关于用MATLAB2016A将GUI文件编译生成EXE后的运行问题!!全部的内容,包括:用MATLAB2016A将GUI文件编译生成EXE后的运行问题!!、matlab中用什么实现公式编译、matlab2014a下编译的C++文件怎么在2016b下运行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)