MATLAB編譯C 問題(MEX檔案)

2021-08-09 12:20:31 字數 878 閱讀 2549

由於作業原因,需要matlab和c++聯合程式設計,matlab編譯c++檔案遇到一系列問題,現在彙總如下:

首先關於大部分基礎知識,參閱這篇文章:

matlab與c/c++聯合程式設計之從matlab呼叫c/c++**

執行mex -setup後,matlab顯示如下:

由於我使用的是matlab 2013a+vs2013,而matlab 2013a是不支援vs2013的所以無法使用該編譯器,支援vs2012。其他版本的支援情況可以檢視matlab給出的那鏈結,

更換版本,或者新增相應檔案。為了使得支援vs2013,我們需要新增這個檔案:matlab mex support for visual studio 2013 (and mbuild)。

如下圖所示,按照步驟新增檔案:

安裝成功後,如下圖所示:

安裝成功後,按照那篇文章編寫相應的c++檔案,編寫成功後,進行編譯,但是出現找不到檔案的情況,如下圖所示:

出現這種問題只需要,再執行一次,mex -setup即可。當然檔案路徑的傳統問題,自行解決。

在matlab中編輯c++,檔案儲存在預設路徑下,能避免一些列問題。

VC 編譯 MATLAB 的 mex 檔案

vc 編譯 matlab 的 mex 檔案 mex 檔案是 matlab 呼叫其他程式語言程式或演算法的介面。在 windows 環境中,mex 檔案是擴充套件檔名為 dll 的動態鏈結庫,可以在 m 程式中直接呼叫,使用者可以通過 234 matlab 實用教程 matlab 提供的命令 mex ...

MATLAB的通訊mex編譯問題及解決方法

查了一些相關資料matlab的通訊最好用32位的matlab,對於是不是64位的系統無所謂,但是一定要裝32位的matlab,否則生成不了mexw32檔案 1.通過udp編寫的c與matlab混合編寫的點c檔案如下 send.c include mex.h include include defin...

Matlab與C 混合MEX程式設計

一 mexfunction 與c中的main函式一樣,mex程式中的開始函式為mexfunction.預設變數引數是 void mexfunction int nlhs,mxarray plhs,int nrhs,const mxarray prhs 其中nlhs指的是在呼叫函式時返回值的個數 pl...