matlab 編譯器的使用
matlab 編譯器(相應命令為 mcc)可生成獨立應用程式、庫、com 物件、excel 外掛程式,
218 matlab 實用教程
它根據目標型別生成合適的包裝器檔案。包裝器檔案包含編譯後的應用程式和可執行物件類
型之間的介面,具有下面一些功能。
z 完成包裝器指定的初始化和終止執行工作。
z 定義包含路徑資訊、加密密匙和 matlab 元件執行時(mcr)所需其他資訊的陣列。
z 提供傳遞介面函式。
matlab 編譯器生成的元件技術檔案(ctf)與最後生成的目標型別(可執行程式或庫)是
獨立的,包裝器檔案提供了與目標型別的必要介面。
1.環境配置
mcc 命令具有將 m 檔案編譯生成 exe 檔案或 cpp 檔案等許多編譯功能,使用 mcc 命令之
前必須進行環境配置。mbuild 是 matlab 提供的常見編譯命令,在命令視窗輸入命令「mbuild
- setup」完成配置,配置時第乙個問題可選「n」,編譯器可選用「microsoft visual c/c++ version
6.0」。mex 的配置將在 11.5 節中講述。
2.mbuild 命令
使用命令 mbuild 可對已有 c 檔案或 c++檔案進行編譯,編譯生成的 obj 檔案可直接雙擊運
行。比如,要對檔案 good.c 和 good.cpp 進行編譯,可在命令視窗分別輸入命令「mbuild – c good.c」
和「mbuild – c good.cpp」。
3.mcc 命令
使用 mcc 命令可生成獨立可執行檔案或 c 共享庫。比如,根據檔案 file1.m 和 file2.m 生
成獨立可執行檔案使用命令「mcc – m file1.m file2.m」,而根據檔案 file1.m 和 file2.m 生成 c
共享庫使用命令「mcc – l file1.m file2.m」。其他命令可參閱 matlab 自帶的幫助文件。
4.使用例項
下面結合例子說明獨立應用程式的生成方法。
(1)編輯 m 檔案
用 matlab 程式編輯繪圖程式 mytest.m,**如下。
function mytest() % 定義函式
x=[0,1470,2205,2940,3675,4410,5145,5880,6615,7350];
%定義變數 x(靜載曲線橫座標)為一維陣列並賦值
y=[0.00,1.13,1.98,2.95,4.12,5.63,7.26,9.15,11.43,14.23];
%定義變數 y(靜載曲線縱座標)為一維陣列並賦值
plot(x,y,'*',x,y,'k-') %繪製曲線,星號顯示資料點
grid on; %座標分格線
axis ij;
% 定義座標原點左上角,橫座標值向右增大,縱座標值向下增大
xlabel('荷載(kn)'); % 定義 x 軸名
ylabel('位移(mm)'); % 定義y軸名
title('荷載-位移曲線'); % 定義圖名
axis square; % 圖形設定為方形
axis on; % 顯示座標軸上標記、格線和單位標誌
uiwait(msgbox('靜載曲線繪製完畢')); % 彈出訊息對話視窗
close
將 mytest.m 檔案儲存在指定目錄(如 e:\matlab_example\mytest),同時,將工作目錄選
為該目錄。在命令視窗執行命令「mcc -m mytest.m」後,將新增資料夾 mytest_mcr 及
mytest_mcc_component_data.c、mytest_main.c、mytest.ctf、mytest.exe 等相關檔案。
第 11 章 編譯器與外部介面 219
(2)測試應用程式
執行上述 mytest.exe 檔案,彈出執行結果,如圖 11-1 所示。
圖 11-1 應用程式執行結果
(3)分發應用
matlab 編譯器生成的獨立應用程式可分發到其他機器(目標機器)執行(兩台機器的
作業系統必須相同),操作步驟如下。
þ 執行命令buildmcr,生成matlab元件執行時(mcr)庫文件,mcrinstaller.zip將保
存在/toolbox/compiler/deploy/win32 目錄下(為matlab7 安
裝目錄,下同),該目錄下還有檔案mcrinstaller.exe和unzip。
þ 將下列檔案打包並分發到目標機器指定目錄:mcrinstaller.zip(linux下mcr庫文
檔)、mcrinstaller.exe(windows下自解壓mcr庫工具)、unzip(linux下檔案
mcrinstaller.zip解壓工具)、mytest.ctf(元件技術檔案)、mytest.exe
GCC編譯器的使用
看下面的例子 test.c include main char str i like linux i advices you jion in the linux world printf s n str exit 0 使用gcc編譯 輸入gcc c test.c得到目標檔案test.o。c命令表示對...
GCC編譯器的使用
看下面的例子 test.c include main char str i like linux i advices you jion in the linux world printf s n str exit 0 使用gcc編譯 輸入gcc c test.c得到目標檔案test.o。c命令表示對...
GCC編譯器的使用
看下面的例子 test.c include main char str i like linux i advices you jion in the linux world printf s n str exit 0 使用gcc編譯 輸入gcc c test.c得到目標檔案test.o。c命令表示對...