㈠ 如何將Matlab程序編譯成exe文件
我也是最近才搞定的這個問題,按下述步驟進行,就沒有問題,我已經運行成功,但是遇到你程序的bug的話,便會出現錯誤,關閉整個程序
希望這些對你有用
如何將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的那個黑色地窗口一直存在。下面將實現去除黑屏的辦法:
消除運行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
㈡ MATLAB mex 找不到編譯器
在使用MATLAB時,如果你遇到"mex找不到編譯器"的問題,首先要明確的是,MATLAB需要一個C編譯器來編譯.mex文件,以便在MATLAB中運行這些文件。通常情況下,MATLAB會提示用戶是否願意選擇安裝一個C編譯器。如果選擇"y",MATLAB會列出所有兼容的C編譯器,但有時LCC編譯器可能無法滿足需求,因為它只支持32位的MATLAB版本。
如果選擇"n",MATLAB會顯示所有兼容的C編譯器類型,但你可能會發現某些編譯器如VC6.0不再被支持,而SDK7.1可能會在某些情況下無法正確定位。
為了解決這個問題,可以嘗試以下方法:第一種方法是如果你已經以默認選項安裝了SDK7.1,可以嘗試選擇特定的選項來強制定位編譯器;第二種方法是重新安裝MATLAB,確保選擇32位版本,這樣會自帶LCC編譯器;第三種方法是選擇一個合適的VS版本,下載並安裝,然後重新配置MEX命令。
簡而言之,編譯器的作用是將高級語言(如C、C++、Java)轉換為機器語言,以便計算機能夠理解和執行。現代編譯器的工作流程大致分為幾個步驟:源代碼輸入,經過預處理器處理,然後由編譯器轉換為目標代碼,最後由鏈接器生成可執行程序。
高級語言之所以重要,是因為它們使得程序編寫、閱讀和維護變得更加容易。而機器語言則是計算機可以直接運行的指令集。編譯器的作用就是將高級語言的源程序翻譯成機器代碼,這樣計算機就可以理解和執行這些程序。
對於像C#和VB這樣的高級語言,編譯器會生成中間語言位元組碼,運行時由通用語言運行庫進一步轉換成機器碼,最終被CPU執行。這一過程使得編程更加高效和靈活。
㈢ MInGW-w64作為C編譯器(我們需要安裝的是TDM-GCC)
Simulink中使用S-function/S-function builder進行C代碼嵌入時,Matlab官方推薦使用Mingw-w64作為C編譯器,具體版本需根據Matlab版本而定。查詢所需版本信息,可直接在Matlab幫助文檔中輸入"MinGW",文檔會明確指出所需安裝的版本。下載地址為:TDM-GCC Compiler - Browse /TDM-GCC Installer/Previous/1.1309.0 at SourceForge.net。
下載完畢後,進行正常安裝,需確保安裝路徑中無中文字元或空格,推薦按照安裝程序建議路徑安裝。安裝後,通過在CMD中輸入「gcc -v」確認安裝成功,如版本為4.9.2,則已成功安裝4.9.2版本的TDM-GCC-64。
為使TDM-GCC-64安裝路徑加入系統環境變數,請按照以下步驟操作:從「開始」菜單選擇「計算機」,進入「系統屬性」->「高級系統設置」->「高級選項卡」,點擊「環境變數」按鈕,新建系統變數MW_MINGW64_LOC,設置變數值為TDM-GCC-64安裝路徑,例如C:\TDM-GCC-64。關閉對話框後,再次關閉控制面板對話框。
最後,需將環境變數告知Matlab,確保Matlab能調用到TDM-GCC-64。操作方法如下:在Matlab命令行中輸入「setenv('MW_MINGW64_LOC','C:\TDM-GCC-64')」和「mex -setup」。若命令行窗口出現成功配置提示,表明Matlab已成功配置C編譯器。
版權說明:本文為CSDN博主「husujun」原創,遵循CC 4.0 BY-SA版權協議,轉載時需附原文出處鏈接及本聲明。
原文鏈接:Matlab R2016b安裝TDM-GCC-64