zoukankan      html  css  js  c++  java
  • Matlab编程笔记之GUI程序转exe

    Matlab同样可以制作出和VC++技术一样的基于对话框的GUI界面。

    在Matlab软件中编写GUI程序的方法是:命令行中输入guide,即可进入。

     

    Matlab是强大的数学建模软件,我们可以通过MatlabGUI编写可视化的数学程序,方便我们的操作。

    制作好的MatlabGUI界面程序如何转化成Windows下的可执行文件(后缀名字exe)、Matlab程序如何在没有Matlab软件的电脑上运行。下面这篇文章来解决上述的问题。

     

    网上有很多零零散散的教程,写的乱七八糟,在此我进行了总结,总结出最全的几种方法(每一种都是亲自试过并截图)。

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

    注意:Matlab安装的时候尽量选择全部安装,这样会为以后省下很多事情,比如当时你没有全部安装,此时Matlab 自带的编译器你需要单独安装,这就比较麻烦了(需要找到你得版本对应的编译器,再进行安装)

    注意:对MatlabGUI程序转成可执行文件需要对Matlab程序进行编译,有两种方法,一种是使用Matlab自带的编译器LCC,但是这个不是很好用,个人不推荐。第二种是使用你电脑上的编译器,个人推荐使用VS编译器。

    注意:如果Matlab软件先安装,而VS2010后安装,这时在执行以下操作的时候会出错,Matlab会显示找不到编译器。解决办法就是首先安装VS,再安装Matlab,不过一般编程人员电脑上都有VS,这种出错机会很小。这一点错误我是亲身体验过的。

    注意:VS一定要默认路径安装,否则Matlab很有可能出现找不到编译器的,如下图:

    为了演示步骤,我们在matlab中新建一个GUI程序,也就是后缀名为fig的程序,我们的目的就是将该文件转成可执行文件。

    文件名为example。运行如图(什么都没写)



    第一种方法:
    1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用电脑上自带的VS2010(版本是多少都无所谓),我基于VS 2010实现。

    2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。如下图:




    3、mcc -m filaname, filaname为要转成exe的m文件;
    注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;


    4、安装<matlab path> oolboxcompilerdeploywin32目录下的MCRInstaller到目标目标电脑上,此时我们就可以在没有matlab软件的电脑上运行该软件了。



    注意:

    脱离matlab运行可执行程序
    MCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下:
    <matlab path> oolboxcompilerdeploywin32
    文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mglinstaller.exe)。
    在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。
    在其它没有安装matlab的机器上运行exe文件前:
    首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。
    其次是要将“MCRinstaller.exe安装目录 untimewin32”这个路径添加到该计算机的环境变量中,通常是自动加载。
    如果没有,也可手动安装,添加的方法是:
    右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
    注:在安装过程中会弹出让安装Microsoft.NETFramework可以不用安装。
    最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。
    问题:目前此方法可完全运行在没有安装MATLAB以及C/C++的电脑上,但是如果是在AMD的CPU可以运行,但是不会出现任何MATLAB编译的界面。
    美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:

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

    方法一: 在命令窗口输入
    cd(prefdir)
    edit compopts.bat
    在打开的文件最后添加以下语句:


    A.VC环境下:

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

    B.LCC环境下:
    set LINKFLAGS=%LINKFLAGS% -subsystemwindows

    C. Borland:
    set LINKFLAGS=%LINKFLAGS% -aa


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


  • 相关阅读:
    MySQL创建数据库简单命令
    工作的本质是解决问题
    使用消息中间件时,如何保证消息仅仅被消费一次?
    缓存穿透了怎么办?
    MySQL 数据库的提速器-写缓存(Change Buffer)
    删库了,我们一定要跑路吗?
    做好一件事的三要素
    一分钟简单了解 JSON Web Token
    聊一聊 MySQL 中的数据编辑过程中涉及的两阶段提交
    聊一聊 MySQL 数据库中的那些锁
  • 原文地址:https://www.cnblogs.com/zhangruilin/p/5769798.html
Copyright © 2011-2022 走看看