在Matlab中,編寫一個M文件(myadd.m),保存
function [y,z] = MyAddAndMulti(a, b)
% define function, just to demonstrate the idea
y = a+b;
z = a*b;
end
上述函數實現單獨的數或者是數組相加和相乘。
設置matlab編譯器
過程如下:
1. 在matlab的command window里面敲入mex –setup,(此命令不允許-和setup有空格)matlab會列出所有電腦上所有的編譯器。
2. 選擇編譯器
3.完成之后,敲入mbuild –setup,選擇build工具
在MATLAB的command window中輸入以下命令:
mcc -W cpplib:MyAddAndMulti -T link:lib MyAddAndMulti.m
在Matlab窗口,可能出現以下警告:
To get started, select MATLAB Help or Demos from the Help menu. Warning: No matching builtin function available for D:\MATLAB7\toolbox\simulink\simulink\set_param.bi
此時,可以進行如下操作:
將 \MATLAB7\toolbox\compiler\deploy\matlabrc.m 中的
81 行 set_param(0,'PaperType',defaultpaper); 82 行 set_param(0,'PaperUnits',defaultunits);
用’%‘注釋掉之后,全部選中重新編譯了一次,然后重新啟動 matlab 就沒有警告信息。
上述過程中,matlab中的工作目錄要選擇好,否則發生下述錯誤:
??? Error: File "MyAddAndMulti" not found.
在VS平台上(VS2008)
新建工程(win32控制體),完成之后,界面變為
這個時候,在 項目->屬性,后可以看到
這個看不到C/C++相關設置,需要在我們建的工程中,加上一個CPP文件后,
此時在C/C++下面
添加附加包含目錄
接下來
添加鏈接庫的東西,libmyadd3.lib mclmcrrt.lib mclmcr.lib
運行差不多就對了。
----------------------可能錯誤---------------------------------------------------------------
發生錯誤: LINK : fatal error LNK1104: 無法打開文件“mclmcrrt.lib”
解決辦法: 在鏈接器->常規->附加庫目錄地方沒有添加 D:\matlab\extern\lib\win32\microsoft\msvc60(目錄視安裝情況而定)
建議方案:在matlab中的M文件最好都小寫,因為在生成dll和lib的時候,部分為全部小寫而部分保持原樣。