matlabr2010a與vs2010 c++混合程式設計成功,在vs2010 c++中能夠呼叫matlab的m函式,進行計算,得到正確結果,呼叫matlab中m函式轉化成的dll檔案
一、matlab編譯環境的設定
mex –setuppleasechoose your compiler for building external inte***ce (mex) files:
would you like mex to locate installed compilers [y]/n? n
這個地方如果選擇y,那麼就看不到vs2010 c++的編譯器,只能看到c++6.0的(我電腦裡裝了這兩個),我之前寫的就是用c++6.0的編譯器編譯的dll,再用vs2010可以呼叫成功的。如果這時候你想選擇vs2010 c++的編譯器,就要選擇n,我想也應該可以的。
mbuild –setup
同上 舉例:建立所需的matlab函式檔案 myadd.m
function [c] = myadd(a, b);
c = a + b;
然後,進行編譯,命令如下:
mcc -w cpplib:libmyadd -t link:lib myadd.m–c
會生成如下檔案:
libmyadd.cpp(這裡有函式介面說明)
libmyadd.dll
libmyadd.h
libmyadd.ctf
libmyadd.lib
這四個是要用到的檔案。
vs2010專案目錄設定(mfc):
第一步:新增生成的動態鏈結庫檔案
把四個要要用到的檔案,複製到vs工程目錄下
第二步:選擇專案->專案屬性。選擇c/c++->常規->附加包含目錄:d:\program files\matlab\matlab compiler runtime\v713\extern\include(選擇matlab r2010a編譯器路徑,這樣可以在沒有安裝matlab的機器上執行,但必須安裝matlab的編譯器mcr)
把matlab提供的include路徑新增到vc++的標頭檔案搜路路徑。
第三步:聯結器->常規->附加庫目錄:d:\program files\matlab\matlabcompiler runtime\v713\extern\lib\win32\microsoft(選擇matlab r2010a編譯器路徑,這樣可以在沒有安裝matlab的機器上執行,但必須安裝matlab的編譯器)
新增matlab生成的響應的lib所在目錄加入。
第四步:聯結器->輸入->附加依賴項:libmyadd.lib;mclmcrrt.lib(中間必須是回車分開,回車以後自動生成「;「,不是空格鍵,也不是手動新增;這個,不然會出現找不到」libmyadd.lib;mclmcrrt.lib「錯誤)
設定完成!
**裡要新增標頭檔案即可
如果編譯會有錯誤:「char16_t」: 重定義;不同的基型別「
只需要在」 libmyadd.h」中新增如下**即可:
vs2010和Matlab R2012a 混合程式設計
本人系統windows 7旗艦版,32位,採用由m檔案構造動態鏈結庫然後在visual studio中呼叫的方法。1.matlab 環境配置 注 matlab r2010b及以後版本才支援vs2010,之前版本中mbuild命令輸入後可能會找不到vs2010編譯器。2.書寫m檔案 示例如下 func...
Matlab R2010在centost下的安裝
更新安裝 yum install libxp 建立目錄 mkdir usr local matlab2010 建立mount目錄 mkdir mnt matlab 掛載iso檔案 mount opt mathworks.matlab.r2010a.unix.iso tbe.iso mnt matla...
vs2010安裝和使用
vs2010是之前我跟老師做 專案時安裝的,這次軟體工程作業我就用它了,安裝過程中的截圖就不存在了,我就詳細說說它的使用吧。下面讓我們用vc2010來做乙個控制台的helloworld程式吧。vs2010裡面不能單獨編譯乙個.cpp或者乙個.c檔案,這些檔案必須依賴於某乙個專案,因此我們必須建立乙個...