Mex文件在VS2010中调试方法
Mex文件在VS2010中調(diào)試方法
matlab里面無法單步調(diào)試mex函數(shù),故需轉(zhuǎn)到VS上面調(diào)試,這里采用VS2010。
參考網(wǎng)上很多人寫的方法但都很亂,雜,試了多次都沒有成功。今天終于解決了,現(xiàn)把方法記錄下來。
? ? ? 1、VC中編寫Mex函數(shù)
新建一個win32?dll 空項目。
2、添加源文件Test.cpp,編寫MEX函數(shù),MEX函數(shù)編寫方法這里不贅述了。
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位系統(tǒng)相應改成64)
Source Files- Add - New Item新建模塊定義文件Test.def
并為其添加內(nèi)容
LIBRARY ;"Test"
EXPORTS mexFunction
在Linker-Input-Module Definition File添加:Test.def
4、F7生成解決方案,如果以上都正確,便會在工程Debug目錄下生成一個(ProjectName).mexw32文件。
5、在VS中單步調(diào)試MEX函數(shù)。
將matlab的current folder 設(shè)置成mexw32文件所在的路徑,即Debug目錄。(這步非常重要,要不無法調(diào)試調(diào)用)
vs2010-Tools-附加到線程 Attach to process-選擇matlab。
在源代碼Test.cpp里設(shè)置斷點。 在matlab工程里輸入代碼或者函數(shù)(即mexw32文件的文件名,這里為ProjectName),即會跳轉(zhuǎn)到vs的斷點處。 然后按F10便可單步執(zhí)行。 6、每次修改MexFunction所在的.cpp文件后,重新編譯生成解決方案前都需要先在matlab工程下clear一下,即 clear?(ProjectName).mexw32 注意:這步非常重要,因為matlab在調(diào)用該mex函數(shù)后還一直占用,未釋放,必須要clear下,vs中才可重新編譯生成解決方案。 好的,按照以上方法就可以任意編寫可調(diào)試的mex函數(shù)啦。 調(diào)試成功后把(ProjectName).mexw32文件copy到任意matlab工程里,就可以像函數(shù)調(diào)用一樣任意使用啦。 [參考] 1、VS2010中C++創(chuàng)建圖解2、Matlab中MEX文件的編寫與調(diào)試
轉(zhuǎn)載于:https://www.cnblogs.com/wjgaas/p/4994292.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Mex文件在VS2010中调试方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推送:腾迅信鸽 VS Bmob
- 下一篇: js学习笔记第二篇