运行GitHub上的代码,用matlab编写,但是使用了很多c++的函数,为了读懂,只好用调试模式读,鄙人对c++实在是不熟悉,只能读不能写,外加原代码是在Linux系统上,由于搞不到linux下的matlab,只能硬着头皮在windows下调试
屡次遇到断点不能hit的问题
很多mex调试的教程讲的很简单,说用mex -g编译以后,再在vs里面设断点就可以调试了,然而,其中有狠多坑。
mex 编译器设置
由于我电脑上安装的vs2013 community 的版本,所以在使用mex -setup的时候并不能将vs设置为编译器,后来看了看它的寻找过程发现,它貌似再找2015,和2017甚至是后面的版本,ps我用的是matlabR2019b。于是乎首先我卸载了2013重装了一个2017prof的版本,看有人说不用profession,community就行,我保险起见还是用了profession以免还要浪费时间重新装。安装了以后,再在matlab上运行:mex -setup 就能选择c的编译器,由于我是要用c++,于是我就用了:mex -setup c++选择了visual studio 2017作为编译器。
后面的步骤严格参照官方文件
https://www.mathworks.com/help/matlab/matlab_external/debugging-on-microsoft-windows-platforms.html 这个例子是关于c的,先运行一下这个例子,在移植到c++就行了,虽然有例子还是踩坑了,有几个特别注意的点