MATLAB和c++混编 调试相关内容
2017-11-27 17:41
501 查看
https://wenku.baidu.com/view/6fd2cf55cfc789eb162dc857.html?qq-pf-to=pcqq.c2c 原网址
在Matlab 中调试用C/C++编写的MEX 文件(32、64位机,VS2005和matlab R2010b) mex文件是matlab提供的与外部语言如C、C++提供的接口函数。可以在Matlab环境下编写一个*.m文件,来编译所定的C/C++文件,当然,这个C/C++文件的开头是有要求的。Mex函数有固定的自己的一套接口形式 以VS2005和matlab R2010b 7.11.0版本为例,C/C++文件在matlab编译格式为*.mexw32,准备好你的C/C++文件后:
[1]、matlab安装mex编译工俱 命令如: mex –setup 编译工具选择:VS2005;一路yes下来。最后,只要不报错就可以。
[2]、在matab环境中,编写编译文件compile_mex.m 把C/C++文件编译成*.mexw32文件时,要使用mex –g命令,产生具有调试信息的执行文件。而不是mex –o命令,后者 是不含调试信息的。
compile_mex.m文件内容如下;
function compile_mex(debug_flag) (看原文)
在命令行执行: debug_flag =’1’, compile_mex(debug_flag)
mex –g filename .c 生成了:filename .mexw32和filename.mexw32.pdb; 如果不需要产生调试信息: 在命令行做无参数执行: compile_mex 生成了:filename .mexw32,但没有生成filename.mexw32.pdb;
[3]、确定matlab打开。
[4]、VS2005设置: 打开VS2005,而后打开*.mexw32所对应的C/C++文件,不用建立新的工程。
找到“调试”或“工具”下拉项:attach to processor(附加到处理器),选择matlab.exe进程,确定即可。此时可以看到VS2005是处于运行状态的。
在C/C++文件中,就你所关心的程序处设置断点。
[5]、打开matlab下要运行的程序,先在matlab调用*.mexw32文件的那个地方设个观察断点。运行matlab程序。
[6]、matlab先停在你的matlab调用处,再继续执行程序。自动跟到VS2005中设定的断点。(自动从matlab跟入VS2005),可以使用单步,逐步,跳出等调试手段,还可以 把 变量添加到观察窗口,和VS2005下的操作雷同。但不具备所有功能。
[7]、按F5 运行完c++程序的剩余部分,并从VS回到MATLAB界面。
[注释]、*.mexw32文件,*.mexw32.pdb文件和C/C++源文件,*.m文件最好都放在一个文件夹下。
在Matlab 中调试用C/C++编写的MEX 文件(32、64位机,VS2005和matlab R2010b) mex文件是matlab提供的与外部语言如C、C++提供的接口函数。可以在Matlab环境下编写一个*.m文件,来编译所定的C/C++文件,当然,这个C/C++文件的开头是有要求的。Mex函数有固定的自己的一套接口形式 以VS2005和matlab R2010b 7.11.0版本为例,C/C++文件在matlab编译格式为*.mexw32,准备好你的C/C++文件后:
[1]、matlab安装mex编译工俱 命令如: mex –setup 编译工具选择:VS2005;一路yes下来。最后,只要不报错就可以。
[2]、在matab环境中,编写编译文件compile_mex.m 把C/C++文件编译成*.mexw32文件时,要使用mex –g命令,产生具有调试信息的执行文件。而不是mex –o命令,后者 是不含调试信息的。
compile_mex.m文件内容如下;
function compile_mex(debug_flag) (看原文)
在命令行执行: debug_flag =’1’, compile_mex(debug_flag)
mex –g filename .c 生成了:filename .mexw32和filename.mexw32.pdb; 如果不需要产生调试信息: 在命令行做无参数执行: compile_mex 生成了:filename .mexw32,但没有生成filename.mexw32.pdb;
[3]、确定matlab打开。
[4]、VS2005设置: 打开VS2005,而后打开*.mexw32所对应的C/C++文件,不用建立新的工程。
找到“调试”或“工具”下拉项:attach to processor(附加到处理器),选择matlab.exe进程,确定即可。此时可以看到VS2005是处于运行状态的。
在C/C++文件中,就你所关心的程序处设置断点。
[5]、打开matlab下要运行的程序,先在matlab调用*.mexw32文件的那个地方设个观察断点。运行matlab程序。
[6]、matlab先停在你的matlab调用处,再继续执行程序。自动跟到VS2005中设定的断点。(自动从matlab跟入VS2005),可以使用单步,逐步,跳出等调试手段,还可以 把 变量添加到观察窗口,和VS2005下的操作雷同。但不具备所有功能。
[7]、按F5 运行完c++程序的剩余部分,并从VS回到MATLAB界面。
[注释]、*.mexw32文件,*.mexw32.pdb文件和C/C++源文件,*.m文件最好都放在一个文件夹下。
相关文章推荐
- Matlab和C/C++混编调试
- MATLAB,C++混编,调试
- c++ matlab 混编经验
- c++调用matlab的函数,并获取相关计算值
- android studio2.3.3 模拟器 Jni函数调用C++对象,lldb调试this指针和相关变量显示无效的原因
- TLD matlab c++混编代码的运行配置方法
- C++与matlab用dll或者Lib的方式混编方法
- Android 4.0 触摸屏驱动调试记录 及 git patch相关内容
- Matlab & C++ 混合编程mex文件的编写与调试
- MATLAB 与 音频处理 相关内容摘记
- C++与matlab用dll或者Lib的方式混编方法
- matlab和C++混编(1)配置开发环境
- C++与matlab用dll或者Lib的方式混编方法
- 【转帖】MATLAB 与 音频处理 相关内容摘记
- Visual C++ 6.0与Matlab联合编程(1)---Matlab调用C++进行mex文件调试
- 关于c++检测内存泄露相关知识(windows程序调试)
- 关于c++检测内存泄露相关知识(windows程序调试)
- C++与matlab用dll或者Lib的方式混编方法
- Matlab + VS | Matlab2014a + VS2010 Win7 混编调试
- 关于C++的标准库的相关内容