基於MATLAB2008B與VS 2003生成獨立可執行的程式

艾蔓草發表於2011-11-10
如何將MATLAB程式編譯成獨立可執行的程式?如何將編譯好的獨立可執行程式釋出在沒有安裝MATLAB的電腦上?下面將一步步實現:

一、生成獨立可執行的程式(exe檔案)步驟

1、安裝編譯器。可有多種選擇,matlab自帶了一個LCC,推薦使用VC++6.0,我基於VS 2003實現。
2、設定編譯器。在matlab命令列輸入mbuild –setup以及mex –setup,選擇安裝的c編譯器。
3、呼叫編譯器。此處使用MATLAB下的一個GUI平臺deploytool下完全實現。在命令視窗輸入deploytool即可看到。具體使用方法請Help。
      當然,也可以輸入mcc -m filaname, filaname為要轉成exe的m檔案;
      注:在以前的版本中,用編譯命令mcc -B sglcpp filaname;自2006的版本後,替換為mcc -mfilaname;
4、安裝<matlab path>\toolbox\compiler\deploy\win32目錄下的MCRInstaller。

二、脫離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的那個黑色地視窗一直存在。

相關文章