Matlab/VS调试

来源:互联网 发布:真人棋牌游戏源码 编辑:程序博客网 时间:2024/06/03 04:35

当Matlab和C++进行混合编程的时候,Matlab编译mex.c文件的时候,一般mex命令中都是通过包含库的方式引入C++编写的函数或类。因此对于调试带了很大的麻烦。例如在Vfleat库的调试中,我们对源文件进行了修改sift.c,然后需要重新编译生成lib文件供mex命令编译mex.c时使用。

1.利用VS命令提示行中,输入nmake /f Makefile.mak的方式进行重新编译时(幸好只对修改的进行了重新编译),会提示无法访问:
这里写图片描述
此时,是由于Matlab占用了,我们并不需要关闭Matlab,而是在Matlab的命令行窗口输入clear all。即可。然后在VS命令提示中重新输入:

nmake /f Makefile.mak

即可对修改的文件编译成功。
2.在源文件sift.c中添加对变量的输出时,通过定义文件FILE *fp的形式,将变量的值输出到.txt文件中,要注意FILE*fp的定义不能定义在函数内部,否则会提示fp未知类型。
3.Matlab混合编程时,入口为matlab,对mex.c或者××.c文件进行调试的时候,我们之前只是调试单个文件,这样,在VS界面,我们想通过右键跳转到函数的定义,可以通过下面的配置。

新建一个工程,将源文件和头文件都添加到工程中,这样的话,就可以实现调试的时候函数定义或者变量定义的跳转。

0 0