1. 程式人生 > >使用MATLAB編譯器實現混編(小結)

使用MATLAB編譯器實現混編(小結)

MALAB作為應用最為廣泛的數學軟體,具有豐富的矩陣運算功能、涵蓋多個科技領域的工具箱,以及強大的圖形顯示功能等。相比C/C++等MATLAB能縮短開發時間,但對於一些大型、複雜的應用程式來說,完全使用MATLAB開發程式可能在執行時顯得太慢。
MEX技術:MATLAB外部程式介面分兩大類,一:關於如何在MATLAB裡呼叫其他語言編寫的程式碼。二:關於如何在其他語言裡呼叫MATLAB。
MEX技術包括:①使用MATLAB引擎②使用ActiveX控制元件③使用MAT檔案共享資料④使用C-MEX技術⑤使用Mideva工具⑥使用MATLAB Add-in⑦使用MATLAB編譯器
下面主要介紹使用MATLAB編譯器
MATLAB Compiler(這裡特指把M程式碼轉換成C/C++程式碼的工具)可以將M程式轉換成C/C++程式碼,然後再呼叫外部C/C++編譯器把產生的原始碼編譯、連結成使用者指定的格式。
其中,MATLAB Compiler有以下3種使用方式:①使用mcc命令②在系統命令環境中使用mcc.exe③在MATLAB環境中使用Deployment Tool;
MATLAB Compiler支援的C/C++編譯器有以下3種:①MATLAB本身提供Lcc C編譯器②Borland C++5.3 5.4 5.6版本③Microsoft Visual c++6.0 7.0 7.1及8,另外還支援Linux 中gcc,Solaris以及HP-UX。在各種平臺上配置所支援的C/C++編譯器命令都是mbuild命令。
 
總之,可將M檔案轉化成下面兩種形式:
1)  獨立的可執行檔案:由於MATLAB有強大的資料處理以及視覺化功能,同時又有針對各種特定應用領域的工具箱,使可以利用MATLAB快速開發出可以直接交付使用者使用的應用程式。
2)  C/C++語言的動態連結庫函式或其他形式的程式元件,然後在其他程式中呼叫這些元件,這樣其他程式就可以呼叫MATLAB的功能。 
把編譯產生的可執行檔案或動態連結庫,釋出到沒有安裝MATLAB的計算機上,必須在目標機上安裝MCR,不能只簡單地把編譯後產生的檔案複製到目標機。有下面兩種方式:
①     使用MATLAB命令builder②使用Deployment Tool圖形化工具
 
這裡給出生成.exe可執行檔案的簡單例子,想了解更多可參考相關書籍和MATLAB幫助
.m檔案為test.m
在MATLAB命令列輸入: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 F:/PROGRA~1/MATLAB/R2009a/sys/lcc
[2] Microsoft Visual C++ 6.0 in D:/Program Files/Microsoft Visual Studio
 
[0] None
 
Compiler: 1
 
Please verify your choices:
 
Compiler: Lcc-win32 C 2.4.1
Location: F:/PROGRA~1/MATLAB/R2009a/sys/lcc
 
Are these correct [y]/n? y
 
Trying to update options file: C:/Documents and Settings/Administrator/Application Data/MathWorks/MATLAB/R2009a/compopts.bat
From template:              F:/PROGRA~1/MATLAB/R2009a/bin/win32/mbuildopts/lcccompp.bat
 
Done . . .
 
>> mcc -m test

這樣就生成了test.exe以及執行該可執行檔案所需要的其它檔案。