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后缀的程序

matlab 和 C++混合混合编译及调试_第1张图片

点击 调试 ——>附加到进程

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

matlab 和 C++混合混合编译及调试_第2张图片

可用进程选择“matlab.exe”点击“附加”

!!!此时要保证matlab是打开的,否则是找不到“matlab.exe”进程的

matlab 和 C++混合混合编译及调试_第3张图片

在.cpp文件中设立断点

!!!不设立断点进入不到.cpp文件中

matlab 和 C++混合混合编译及调试_第4张图片

2.3调试程序

在matlab中对应位置,就可以进行VS中进行调试了



在VS中停止调试会进行到matlab的调试模式中

3参考资料

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

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


你可能感兴趣的:(软件安装,matlab,PC环境相关)