matlab 和 C++混合混合編譯及調試

1.背景

在SS算法的matlab代碼中,超像素生成用的是《Efficient_Graph-Based_Image_Segmentation》的方法,作者提供的是C++代碼,SS作者對源碼進行修改,寫了matlab和C++的接口函數mexFelzenSegmentIndex函數實現C++和matlab的混合編程。爲了更好地理解源碼,需要對matlab和C++進行混合調試。

2步驟

2.1在matlab中編譯文件

在matlab進行編譯,此處一定要有-g選項



當前目錄會生成2個文件,一個是matlab可以調用的 .mexw64文件,以及在VS中用於調試的Program Debug Database (.pdb)程序


!!!沒有g選項是無法進行調試的

2.2在VS中打開調試界面

打開要調試的.cpp後綴的程序


點擊 調試 ——>附加到進程

!!!我用的是VS2015,其他版本的VS  “附加到進程”可能在其他的位置。


可用進程選擇“matlab.exe”點擊“附加”

!!!此時要保證matlab是打開的,否則是找不到“matlab.exe”進程的


在.cpp文件中設立斷點

!!!不設立斷點進入不到.cpp文件中


2.3調試程序

在matlab中對應位置,就可以進行VS中進行調試了



在VS中停止調試會進行到matlab的調試模式中

3參考資料

https://blog.csdn.net/shaoxiaohu1/article/details/37745215

https://blog.csdn.net/jpday/article/details/50364882


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章