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>\toolbox\compiler\deploy\win32目錄下的MCRInstaller到目標目標電腦上,此時我們就可以在沒有matlab軟件的電腦上運行該軟件了。
注意:
脫離matlab運行可執行程序
MCR是由matlab的運行環境,占用不到300M的對於用不同matlab版本生成的exe文件,MCR版本也會有不同,因此,在程序打包時,最好將相應版本的MCR一起打包。MCR環境的設置文件存放目錄如下:
<matlab path> \toolbox\compiler\deploy\win32
文件名為MCRInstaller.exe。可將其拷貝到自己的文件夾中,(7.0以前的版本是mglinstaller.exe)。
在MATLAB里運行可執行程序的辦法是在前面加一個!,比如:!picshow,后綴名可有可無。
在其它沒有安裝matlab的機器上運行exe文件前:
首先安裝matlab的運行環境。在同一機器上可以並存不同版本的matlab環境(換句話說不同版本不兼容)。
其次是要將“MCRinstaller.exe安裝目錄\runtime\win32”這個路徑添加到該計算機的環境變量中,通常是自動加載。
如果沒有,也可手動安裝,添加的方法是:
右擊“我的電腦”“屬性”“高級”“環境變量”“添加”指定一個變量名,然后將上述路徑復制到里面就可以了。
注:在安裝過程中會彈出讓安裝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窗口了