VC2008調用matlab生成的dll和lib


在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的時候,部分為全部小寫而部分保持原樣。

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM