matlab選擇編譯器
Ⅰ 關於matlab編譯器
直接用MATLAB自帶的編譯器:
APPS--->Application Compiler--->點擊『add main file』右邊的加號,添加主函數,進行編譯就行了。
註:如果你想把exe拿到沒有MATLAB的機子上運行的話,記得選中『Runtime included in package』(Application Compiler界面里)。在文件夾找到該文件,進行安裝就行了
Ⅱ 請問在Matlab中選擇VC6.0為編譯器的方法
1. 安裝
單獨安裝、和MATLAB同時安裝。
2. 設置(以vs2005為例)
>> mbuild -setup
Please choose your compiler for building standalone MATLAB applications:
Would you like mbuild to locate installed compilers [y]/n? y
Select a compiler:
[1] Lcc-win32 C 2.4.1 in D:\PROGRA~1\MATLAB\R2010a\sys\lcc
[2] Microsoft Visual C++ 2008 SP1 in D:\Program Files\Microsoft Visual Studio 9.0
[3] Microsoft Visual C++ 2005 SP1 in C:\Program Files\Microsoft Visual Studio 8
[0] None
Compiler: 3
Please verify your choices:
Compiler: Microsoft Visual C++ 2005 SP1
Location: C:\Program Files\Microsoft Visual Studio 8
Are these correct [y]/n?
Trying to update options file: C:\Documents and Settings\Administrator\Application Data\MathWorks\MATLAB\R2010a\compopts.bat
From template: D:\PROGRA~1\MATLAB\R2010a\bin\win32\mbuildopts\msvc80compp.bat
Done . . .
3. 使用
(1)在 MATLAB 環境中使用 mcc 命令;
(2)在系統命令環境中使用 mcc.exe (在Windows上);
(3)在 MATLAB 環境中使用 Deployment Tool。
4. 程序發布
(1)使用 MATLAB 命令 builder;
(2)使用 Deployment Tool 圖形化工具。
一般來說,需要發布的文件有3個:
(1)編譯得到的可執行文件或庫函數;
(2)CTF 文件;
(3)MCRInstaller.zip。
在最終用戶的計算機上,首先需要把MCRInstaller.zip 解壓,並把 MCR 中可執行文件所在目錄添加到系統路徑上,然後就可以使用編譯後的程序了。
Ⅲ matlab2009a用什麼編譯器
問題描述:系統為win7 64bits,軟體為matlab2009a和VS2008,在matlab中輸入命令行max -setup,找不到VS2008編譯器。
解決方法:
1.下載Microsoft Visual C++ 2008 Express for MatLab,按裡面的readme.txt執行操作
Place these three files in C:\Program Files\MATLAB\R2007a\bin\win64\mexopts:
msvc90freeengmatopts.bat
msvc90freematopts.bat
msvc90freematopts.stp
Replace these three files in C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin:
vcvars32.bat
vcvars64.bat
vcvarsx86_amd64.bat
2.修改msvc90freematopts.stp
The file msvc90freematopts.stp on line 51 contains a reference to 'v6.1' change this to 'v6.0a'
3.添加環境變數
The environment variable MSSdk needs to be changed to c:\Program Files\Microsoft SDKs\Windows\v6.0a
一般按這樣操作後就可以通過max -setup選擇編譯器了,但是我在執行上述操作後,雖然matlab能夠找到VS2008編譯器,但是會有錯誤,提示為需要安裝C++ 64bits compiler and tool 和SDK。其原因是在安裝VS2008的時候,如果是按默認設置進行的話,是不會安裝C++ 64bits compiler and tool,此時你需要重新安裝VS2008,並按自定義安裝,在C++選項下面選擇 C++ 64bits compiler and tool,當安裝完成後,一切就OK了。
Ⅳ 如何配置64位Matlab的編譯器
1. 選擇「Build」 – 「Configuration Manager」菜單,打開配置管理器。點擊新建解決方案平台。
2. 選擇「x64」平台,點擊確定按鈕。
3. 這時候配置管理器中的平台已經改成剛才選擇的x64了,這時候編譯出來的就是64位程序了。可以在工具欄的平台下拉框中快速切換目標平台。
4. 如果在選擇平台的下拉列表裡找不到x64,可能是沒有安裝x64編譯支持。在VS安裝程序里再裝上就可以了。
Ⅳ 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命令。
Ⅵ 如何將MATLAB程序編譯成exe文件
1.設置編譯器:
在確定安裝好Matlab
Compiler後,還需要對Compiler進行適當的配置,方法是在Matlab命令窗口輸入:
mbuild –setup, 按提示選擇matlab自帶編譯器LCC。
2.將程序編譯成exe文件:
(1)如果全是M文件
調用格式:
Mcc -m mainmfile mfile1 mfile2 ……
mfileN;
第一個mainmfile 為主程序(main
function),其餘均為需要的M文件。
(2)如果是GUI文件
例如mygui.fig 和mygui.m,編譯這個GUI的命令是:
>>mcc -m
mygui
(3)如果既有GUI文件,又有M文件(誰是主程序,誰放在前)
①>>mcc -m mygui mfile
(mygui是主程序,即mygui中用到mfile.m);
②>>mcc -m mfile
mygui(mfile是主程序,即mfile.m中用到mygui)。
(4)如果GUI用到ActiveX控制項
>>mcc -m mygui -a
myactivex
myactivex
是ActiveX控制項的文件名。
編譯完成後,可通過雙擊生成.exe文件;或者在matlab命令行輸入帶「!」的命令:
>>! mainmfile
(主程序文件名)
3.編譯後的文件可以先打包成一個.exe文件,然後再用隱藏DOS窗口的軟體將該.exe文件彈出的DOS窗口隱藏。
(1)打包軟體很多。如MoleBox Pro;
(2)隱藏DOS窗口的方法或軟體也很多,在各大Matlab論壇上都有,例如:Matlab中文論談。
下面介紹兩種隱藏方法:
方法一: 在命令窗口輸入:
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工具,點擊下列地址下載(具體操作裡面有說明)。
http://www.mathworks.com/matlabcentral/fx_files/3909/1/suppress.zip
方法一生成的exe再到沒有任何安裝MATLAB的機子上運行也不會有黑屏了。
方法二的缺點就是要同時存在您生成的exe以及supress.exe,必須在同一目錄下。
4.如果目標計算機上沒有安裝該版本的matlab,上面生成的exe文件不能正常運行,解決方法有二:
(1)將該執行文件所需要的dll文件都復制到目標計算機上;
(2)在目標計算機上安裝MCRinstaller.exe。(該文件位於matlab安裝目錄下的
\toolbox\compiler\deploy\win32內)。
將「MCRinstaller.exe安裝目錄\runtime\win32」這個路徑添加到目標計算機的環境變數中,通常是自動載入。
如果沒有,也可手動安裝,添加的方法是:
右擊「我的電腦」「屬性」「高級」「環境變數」「添加」指定一個變數名,然後將上述路徑復制到裡面就可以了。
註:在安裝過程中會彈出讓安裝Microsoft.NETFramework可以不用安裝。
最後就是將編譯生成的相相關文件拷貝到同一目錄下,雙擊即可運行。
Ⅶ matlab2020b找不到vs2015編譯器
matlab2020b找vs2015編譯器方法如下:
1、首先點擊桌面matlab圖標打開軟體。
2、然後找到命令窗口。
3、輸入edit的字元,然後按下enter鍵。
4、即可顯示編輯窗口。
Ⅷ 有關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環境可以運行。
Ⅸ 如何在MATLAB R2010a 中使用Visual C++ 2010編譯器
1、安裝補丁VS2010MEXSupport.zip
由於MATLAB R2010a 發布的時間要比 VS2010早,所以在該版本識別不了VC++2010編譯器。不過R2010a之後的版本應該不會有這種問題了。
解壓補丁包,將其中的文件放到 D:Program 文件夾下。
2、在MATLAB中安裝VC++ 2010 編譯器
打開Matlab,在 command window 中輸入 mex -setup
>> mex -setup
Please choose your compiler for building external interface (MEX) files:
Would you like mex to locate installed compilers [y]/n?n (一定要選擇 n)
Select a compiler:
[1] Intel C++ 11.1 (with Microsoft Visual C++ 2008 SP1 linker)
[2] Intel C++ 9.1 (with Microsoft Visual C++ 2005 SP1 linker)
[3] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 SP1 linker)
[4] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 Shell linker)
[5] Intel Visual Fortran 10.1 (with Microsoft Visual C++ 2005 SP1 linker)
[6] Lcc-win32 C 2.4.1
[7] Microsoft Visual C++ 6.0
[8] Microsoft Visual C++ 2005 SP1
[9] Microsoft Visual C++ 2008 Express
[10] Microsoft Visual C++ 2008 SP1
[11] Microsoft Visual C++ 2010
[12] Microsoft Visual C++ 2010 Express
[13] Open WATCOM C++
[0] None
Compiler:12
注意,如果選擇 n 之後,沒有列出這么多編譯器選項,甚至沒有出現VC++ 2010。 不要慌,此時選擇 0,即None。
Compiler: 0
mex: No compiler selected. No action taken.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the new
API. You can find more information about this at:
http://www.mathworks.com/support/solutions/en/data/1-5C27B9/?solution=1-5C27B9
Building with the -largeArrayDims option enables the new API.
然後在command window 里再次輸入 mex -setup。
>> mex -setup
Please choose your compiler for building external interface (MEX) files:
Would you like mex to locate installed compilers [y]/n?n (一定要選擇 n)
此時就會列出很多編譯器,包括已經VC++2010。如果還沒有,可重復幾次以上過程。當然前提是必須安裝VS2010,否則,再怎麼重復,也找不到VC++2010編譯器。
列出VC++2010編譯器之後,我相信接下該怎麼做對大家來說沒問題。
3、error C2371: 'char16_t' : redefinition; different basic types
在混合編程中,也許會出現如下錯誤:
C:Microsoft Visual Studio 10.0VCINCLUDEyvals.h(576) : error C2371: 'char16_t' : redefinition; different basic types
C:.h(330) : see declaration of 'char16_t'
原因是VS2010中的yvals.h添加了char16_t的定義,而Matlab的matrix.h也包含對char16_t的定義,所以同時包含這兩個頭文件的話,會導致重復定義char16_t的錯誤。
完全沒有必要修改這兩個頭文件(以防修改之後,會在將來導致一些問題),只需要在包含matrix.h之前包含yvals.h即可。例如:
#include<yvals.h>
#if(_MSC_VER>=1600)
#define__STDC_UTF_16__
#endif
#include"mex.h"
mex.h 包含matrix.h。這就要求我們必須知道所包含的頭文件是否包含matrix.h。
Ⅹ 如何將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