【matlab】如何將matlab GUI程序轉換為exe獨立運行


###Date:2017-2-27

=================================================================================

1.安裝編譯器

>> mex -setup

Please choose your compiler for building external interface (MEX) files:

Would you like mex to locate installed compilers [y]/n? y

Select a compiler:

[1] Lcc C version 2.4 in C:\MATLAB7\sys\lcc

[0] None

Compiler: 1

Please verify your choices:

Compiler: Lcc C 2.4

Location: C:\MATLAB7\sys\lcc

Are these correct?([y]/n): y

Try to update options file: C:\Documents and Settings\liu\Application Data\MathWorks\MATLAB\R14\mexopts.bat

From template:              C:\MATLAB7\BIN\WIN32\mexopts\lccopts.bat

Done . . .

安裝完畢

說明:在命令窗口輸入 mbuild –setup ,對於大多數用戶來說選擇Matlab自帶的Lcc編譯器是足夠!如果要在沒有安裝matlab的計算機上執行編譯后的程序,首先要將\MATLAB7\toolbox\compiler\deploy\win32中的MCRinstaller.exe安裝到該計算機上(7.0以前的版本是mglinstaller.exe)。

2.設置編譯器:

在確定安裝好Matlab Compiler后,還需要對Compiler進行適當的配置,方法是在Matlab命令窗口輸入:

>>mbuild –setup, 按提示選擇matlab自帶編譯器LCC。

 

3.將腳本編譯為可執行文件:

如項目文件包含: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環境運行必需的文件。

 

4.在未安裝matlab的機器上運行可執行程序。

將toolbox\compiler\deploy\win32中的MCRinstaller.exe安裝到該計算機上,將生成可執行程序脫離matlab運行所需的函數庫。

 

將2中生成的gui.ctf,gui.exe先拷貝到該計算機同一路徑。再運行gui.exe將生成gui_mcr文件夾,包含程序運行所需的庫。至此完成。

 

5.去除獨立可執行程序運行時的"DOS黑窗口"。

以上生成的exe程序運行時首先彈出一個DOS界面窗口,如果不需要其輸出數據和錯誤信息,可將其去除。

 

matlab命令行輸入:

>>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

參考:

https://www.cnblogs.com/zhangruilin/p/5769798.html

http://chengyonghuan.blog.163.com/blog/static/127714284201232511303366/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM