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


发布了29 篇原创文章 · 获赞 4 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/best_scenery/article/details/80705290