mcc函數實現matlab的m文件轉化爲c,c++文件。

mcc函數實現matlab的m文件轉化爲c,c++文件。

命令的格式爲:
mcc[-option]fun[fun2...][mexfile1...][mlifile...]
此函數的作用是將matlab程序fun.m轉化爲c程序fun.c或者c++程序fun.cpp
轉化後的文件默認在當前目錄中。
若M文件多於一個,那麼每個文件對應轉化相應的c和c++文件
若源文件包含c文件,則將它們同新生成的c文件一起編譯。
一些有用的option參數解釋如下:
————————————————————————————————————
c  轉化爲c語言文件但是不生成mex文件或者獨立應用程序
d<directory>  指定生成的文件目錄
G/g  進入調試狀態
h  編譯幫助函數,所以的m文件都將編譯到mex文件或者獨立應用程序
L《option》 指定目標語言爲option,其中c,cpp,p分別代表c語言,c++,matlab語言
m  指定創建獨立c語言應用程序的宏,作用等於‘-t-W main -L C-h-T link:exe libmmdile.mlib’
M"<string>"  向MBLID或者mex教本傳遞string中包含的信息
o<outputfilename>  指定輸出文件名
O<optimization>  指定優化參數
p   指定創建獨立c++語言應用程序的宏  作用等於-t-W main -L Cpp-h-T link:exe libmmdile.mlib’
v   詳細顯示編譯步驟
x   指定創建獨立mex文件的宏,作用等於-t-W main -L C-T link:exe libmmdile.mlib’
S   轉化爲simuink的s函數
————————————————————————————————————
————————————————————————————————————
eg
現有m文件main.m mrank.m,主函數main中調用了子函數mrank
main.m
function main
r=mrank(5)
mrank.m
function r=mrank(n)
r=zeros(n,1);
for k=1:n
r(k)=rank(magic(k));
end
在matlab環境下執行主程序可以看到結果
》》main
r=
1
2
3
3
5
現在要把他們轉化爲c和cpp程序
在matlab工作窗口中輸入下面命令
》》mcc-mc main mrank
可以得到下面個文件:
main.c
main.h
main-main.c
mrank.c
mrank.h
在matlab中輸入下面命令
mcc -lcpp main mrank
可以得到下面5個文件
main.cpp
main.hpp
main-main.cpp
mrank.cpp
mrank.hpp
有了這些程序以後,就可以在其他c,c++程序中方便調用了

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

創建獨立可執行程序

方法1:編譯m文件爲可執行程序

mcc -m main mrank

or

mcc -p main mrank

方法2:將編譯的c c++轉化爲可執行程序

mbuild main.c main_main.c mrank.c

or

mbuild main.cpp main_main.cpp mrank.cpp

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