matlab編譯器

matlab編譯器和程序發佈

2013-07-04 15:11 by DarkHorse, 130 閱讀, 0 評論, 收藏編輯

如何把編寫好的matlab程序轉換成c/c++語言,如何編譯m文件爲可執行程序,如何在沒有matlab配置環境的機器上運行你編譯出來的可執行程序?

一:matlab的編譯器設置

執行命令:mbuild -setup,注意中間有一個空格。

複製代碼
>> 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 C version 2.4 in D:\MATLAB7\sys\lcc 
 
[0] None 
複製代碼

詢問是否構建本地安裝的編譯器,我們先選y。因爲我安裝的時候,並沒有設置matlab的其他編譯器選項,所以這裏只顯示了matlab默認的編譯器LCC。你可以選擇1,使用它提供的編譯器。如果要使用其它的編譯器,按n,結果如下:

複製代碼
>> mbuild -setup
Please choose your compiler for building standalone MATLAB applications: 
 
Would you like mbuild to locate installed compilers [y]/n? n
 
Select a compiler: 
[1] Borland C++Builder version 6.0 
[2] Borland C++Builder version 5.0 
[3] Borland C++Builder version 4.0 
[4] Borland C++Builder version 3.0 
[5] Borland C/C++ version 5.02 
[6] Borland C/C++ version 5.0 
[7] Borland C/C++ (free command line tools) version 5.5 
[8] Lcc C version 2.4 
[9] Microsoft Visual C/C++ version 7.1 
[10] Microsoft Visual C/C++ version 7.0 
[11] Microsoft Visual C/C++ version 6.0 
 
[0] None 
複製代碼

我用的matlab版本是7.0,所以只提供了這幾種編譯器。其中最常用的vc編譯器的版本與我們使用的vs發佈版本對應關係爲:(摘自:http://www.cnblogs.com/mars9/archive/2012/01/13/2321710.html)

複製代碼
VC6.0 —————— VISUAL STUDIO 6.0

VC7.0 —————— VISUAL STUDIO 2002

VC7.1 —————— VISUAL STUDIO 2003

VC8.0 —————— VISUAL STUDIO 2005

VC9.0 —————— VISUAL STUDIO 2008

VC10.0 —————  VISUAL STUDIO 2010
複製代碼

由於我安裝的的vs版本最低的是2005,而其對應的編譯器爲vc8.0,所以matlab2007 不支持。所以這裏只提供設置的方法。

我們選擇選項9:

複製代碼
Compiler: 9
 
The default location for Microsoft Visual C/C++ compilers is C:\Program Files\Microsoft Visual Studio .NET 2003, 
but that directory does not exist on this machine.  
 
Use C:\Program Files\Microsoft Visual Studio .NET 2003 anyway [y]/n? n
複製代碼
複製代碼
Please enter the location of your compiler: [C:\Program Files\Microsoft Visual Studio .NET 2003] d:\software\Microsoft Visual Studio 8
 
Please verify your choices: 
 
Compiler: Microsoft Visual C/C++ 7.1 
Location: d:\software\Microsoft Visual Studio 8 
 
Are these correct?([y]/n): y
 
Try to update options file: C:\Users\bow\Application Data\MathWorks\MATLAB\R14\compopts.bat 
From template:              D:\MATLAB7\BIN\WIN32\mbuildopts\msvc71compp.bat 
 
Done . . . 
複製代碼

這樣就手動設置了vc編譯器的路徑,並改寫matlab的編譯器設置bat文件。完了以後,我們就可以用現在設置好的編譯器編譯M文件。

 

二:編譯M文件

用到的matlab命令是:mcc

命令格式爲:
mcc[-options]mifilel[mfile2…mfileN];
options爲編譯參數;mfilel爲待編譯的Matlab文件,如果包含多個Matlab文件,可以直接列在mfilel後面。
如:mcc -m ReadComAndDraw.m

執行完了以後,如果沒報錯,則會生成如下的目錄結構:

第三個exe文件就可以執行了。最後兩個是matlab將M文件轉換得到的C文件。

三:發佈可執行文件

上面生成的exe文件如果直接copy到沒有matlab環境中的機器上運行時會報錯的。因爲缺少了相應的庫支持。現在你要做的是:打包Matlab組件運行環境(Matlab Component Runtime,MCR)。將MCR與可執行程序一起打包,拷貝到其他沒有安裝Matlab的機器上,並在該機器上安裝MCR,安裝完畢即可以直接在該機器上運行編譯的Matlab可執行程序。MCR安裝文件位於:Matlab安裝目錄\toolbox\compiler\deploy\win32\MCRInstaller.exe
在2008版的Matlab中,已經內置了Matlab編譯發佈工具箱,在Matlab命令窗口中運行deploytool命令,即可以調出該工具窗口,通過該工具可以方便、快捷地編譯發佈Matlab程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章