matlab里面無法單步調試mex函數,故需轉到VS上面調試,這里采用VS2010。
參考網上很多人寫的方法但都很亂,雜,試了多次都沒有成功。今天終於解決了,現把方法記錄下來。
1、VC中編寫Mex函數
新建一個win32 dll 空項目。
2、添加源文件Test.cpp,編寫MEX函數,MEX函數編寫方法這里不贅述了。
3、配置項目屬性。
打開項目屬性配置頁,C++ -> 附加包含目錄 加入MATLAB安裝目錄下的 \extern\include 路徑。
連接器 -> 附加庫目錄 加入MATLAB的 \extern\lib\win32\microsoft 路徑。
連接器 -> 輸入 -> 附加依賴項 輸入libmx.lib libeng.lib libmat.lib libmex.lib 這四個lib文件。
在Linker-General-Output File:改成
.\Debug\(ProjectName).mexw32(64位系統相應改成64)
Source Files- Add - New Item新建模塊定義文件Test.def
並為其添加內容
LIBRARY ;"Test"
EXPORTS mexFunction
在Linker-Input-Module Definition File添加:Test.def
4、F7生成解決方案,如果以上都正確,便會在工程Debug目錄下生成一個(ProjectName).mexw32文件。
5、在VS中單步調試MEX函數。
將matlab的current folder 設置成mexw32文件所在的路徑,即Debug目錄。(這步非常重要,要不無法調試調用)
vs2010-Tools-附加到線程 Attach to process-選擇matlab。