1.matlab的安裝
連接:http://pan.baidu.com/s/1qXuF7aO
安裝32位版本的matlab(在目錄下bin文件夾中有兩個文件夾,選擇win32文件夾下的setup進行安裝)
2.matlab mex編譯器配置
安裝完matlab之后,需要設定對應的c++編譯器才能編譯.m文件生成可供c++調用的庫文件。打開matlab,在命令行輸入:mex -setup,選擇已安裝的vc編譯器
我的matlab版本是R2010b,選擇的是[2] Microsoft Visual C++ 2008 Express,然后一直選擇y直到看到Done
然后繼續在命令行中輸入:mbuild -setup ,按照上述類似的方式設置編譯器
假設存在一個Add.m的文件需要編譯成庫文件,
Add.m文件
function C=Add(A,B)
C=A+B;
end
使用命令編譯:mcc -W cpplib:libAdd -T link:lib Add.m
成功編譯會在Add.m的路徑下生成一些文件:
如果出現錯誤,可能是編譯器配置錯誤,依次輸入一下兩行命令查看配置文件:
>> cd(prefdir)
>> edit compopts.bat
set VSINSTALLDIR= 這里如果是空值,需要將電腦中安裝的VC路徑寫到這里
3.創建c++程序調用matlab函數
將前面生成的libAdd.dll"、"libAdd.h"和"libAdd.lib"三個文件拷貝到新建的vc工程中,並配置工程屬性,添加matlab安裝目錄下extern中include文件夾,我的是D:\matlab\extern\include
然后配置庫目錄:
添加D:\matlab\extern\lib\win32\microsoft這里需要注意的是,該路徑下有" mclmcrrt.lib"文件,是我們需要的。
最后配置link連接器,添加:
libeng.lib
libmat.lib
libmex.lib
libmx.lib
mclmcrrt.lib
mclmcr.lib
libAdd.lib(最后這一個是Add.m生成的)
下面的c++程序實現調用
結果: