• 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窗口了


  • 相关阅读:
    关于这个 blog
    P6499 [COCI2016-2017#2] Burza 题解
    CF1172F Nauuo and Bug 题解
    CF1479D Odd Mineral Resource 题解
    CF1442E Black, White and Grey Tree 题解
    CF1442D Sum 题解
    CF1025D Recovering BST 题解
    CF1056E Check Transcription 题解
    CF1025F Disjoint Triangles 题解
    红包算法的PHP实现
  • 原文地址:https://www.cnblogs.com/zhangruilin/p/5769798.html
Copyright © 2020-2023  润新知