matlablcc編譯器
❶ 如何將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的那個黑色地窗口一直存在。下面將實現去除黑屏的辦法:
消除運行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窗口了
方法二:使用suppress工具:
下載附件中的suppress壓縮包後解壓,(當然您可以自己去Google然後再下載)會看到一個suppress.ini文件,用記事本打開,然後將
其中「Name=test.exe」中text.exe的改為你生成的exe文件名。將suppress.exe(有個關盤和顯示器的圖標),改後的
suppress.ini放到你生成的exe的同目錄下。執行suppress.exe或者您自己生成的exe可以了。當然您可以自己修改
suppress.exe的名字,改為您自己想要的名字。
其中的方法一在使用後生成的exe再到沒有任何安裝MATLAB的機子上運行也不會有黑屏了。
方法二的缺點就是要同時存在您生成的exe以及supress.exe,必須在同一目錄下。
❷ 有關matlab程序轉成exe的問題
1.設置編譯器:
在確定安裝好Matlab Compiler後,還需要對Compiler進行適當的配置,方法是在Matlab命令窗口輸入:
Mbuild –setup, 按提示選擇matlab自帶編譯器LCC。
2.將腳本編譯為可執行文件:
如項目文件包含:gui.m, gui.gif, fun1.m。
在此路徑下命令行輸入:mcc –m gui.m,生 成:mccExcludedFiles.log,ReadMe.txt,gui.ctf,gui.prj,gui_main.c,gui_mcc_component_data.c,gui.exe。其中:gui.ctf,gui.exe為脫離matlab環境運行必需的文件。
3.在未安裝matlab的機器上運行可執行程序。
將R2 2007b\toolbox\compiler\deploy\win32中的MCRinstaller.exe安裝到該計算機上,將生成可執行程序脫離matlab運行所需的函數庫。
將2中生成的gui.ctf,gui.exe拷貝到該計算機同一路徑。運行gui.exe將生成gui_mcr文件夾,包含程序運行所需的庫。至此完成。
4.去除獨立可執行程序運行時的「DOS黑窗口」。
以上生成的exe程序運行時首先彈出一個DOS界面窗口,如果不需要其輸出數據和錯誤信息,可將其去除。
matlba命令行輸入:
cd(prefdir)
edit compopts.bat
此時compopts.bat打開,在文件最後添加:
set LINKFLAGS=%LINKFLAGS% -subsystem windows
如果程序比較復雜,易出現異常,則不建議去除這個dos窗口以便調試。
另外,這個辦法是適用於你用的編譯器為LCC,如果是其他的,那麼所加語句有所不同
Microsoft Visual C/C++:
set LINKFLAGS=%LINKFLAGS% /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
Borland:
set LINKFLAGS=%LINKFLAGS% -aa
5.遇到某些函數不能使用的問題。
我的程序中用到vpa函數,運行gui.exe出現:undefined method or function 'vpa' for input argument type of 'double'錯誤提示。而gui.m腳本在matlab環境可以運行。
❸ 64浣嶆満鍣∕ATLAB2013b鍜孧ATLAB2014a娌℃湁LCC緙栬瘧鍣錛屾庝箞瀹夎呭畠
1. 瀹夎 鍗曠嫭瀹夋倝鏅岃呫佸拰MATLAB鍚屾椂涓栭檰灞瀹夎呫 2. 璁劇疆錛堜互vs2005涓轟緥錛 >> mbuild -setup Please choose your compiler for building standalone MATLAB applications: Would you like mbuild to locate installed compilers [y]/鎼滆﹏? y Select a compil...
❹ 64位機器MATLAB2013b和MATLAB2014a沒有LCC編譯器,怎麼安裝它
要用MATLAB2013a的mex功能重新編譯一下C文件,但是64位的MATLAB沒有自帶的編譯器。所以使用mex -setup安裝。安裝MATLAB2013a支持的編譯器,有SDK7.1等21個,但是win8的電腦似乎裝不了SDK7.1,有SDK8.1 可以裝在win8.1 上,但是悲劇的是MATLAB2013
❺ MATLAB mex 找不到編譯器怎麼辦
①選y後,MATLAB會列出當前機器上已經安裝的、且與當前MATLAB版本兼容的所有C編譯器,一般而言,MATLAB都會自帶一個LCC編譯器,然而LCC目渣消前僅支持32位的MATLAB,所以你的機器上沒有。
②選n後,MATLAB會列出所有與當前MATLAB版本兼容的C編譯器類型(不管你是否已經安裝,用於幫助用戶選擇合適的C編譯器),你機器上已經安裝的2個編譯器,VC6.0:MATLAB從R2010b之後不再支持,所以選項里看不到;而SDK7.1選n時可以看到([11]),但選y時沒有跳出,是因為MATLAB沒有正確定位SDK。
③解決方法:
方法一:如果以預設選項安裝了SDK7.1(不改變默認安裝路徑),可以嘗試輸入n後,選肢櫻擇 [14] (注意:是14,不是11!),強制定位該編譯器(網上有人用這種方法成功了:http://mlinking.blog.163.com/blog/static/185801922201331464626365/)
方法二:重新安裝MATLAB,安裝時選擇32位進行安裝,則自帶LCC編譯器。
方法三:選擇適配的VS版本,下載安裝後,重新配置MEX命令。