Mex文件在VS2010中调试方法
来源:互联网 发布:where 1 1 sql注入 编辑:程序博客网 时间:2024/05/09 05:14
Mex文件在VS2010中调试方法
matlab里面无法单步调试mex函数,故需转到VS上面调试,这里采用VS2010。
参考网上很多人写的方法但都很乱,杂,试了多次都没有成功。今天终于解决了,现把方法记录下来。
1、VC中编写Mex函数
新建一个win32 dll 空项目。
2、添加源文件Test.cpp,编写MEX函数,MEX函数编写方法这里不赘述了。
3、配置项目属性。
打开项目属性配置页,C++ -> 附加包含目录 加入MATLAB安装目录下的 \extern\include 路径。
连接器 -> 附加库目录 加入MATLAB的 \extern\lib\win32\microsoft 路径。
连接器 -> 输入 -> 附加依赖项 输入libmx.lib libeng.lib libmat.lib libmex.lib 这四个lib文件。
在Linker-General-Output File:改成
.\Debug(ProjectName).mexw32(64位系统相应改成64)
Source Files- Add - New Item新建模块定义文件Test.def
并为其添加内容
LIBRARY ;”Test”
EXPORTS mexFunction
在Linker-Input-Module Definition File添加:Test.def
4、F7生成解决方案,如果以上都正确,便会在工程Debug目录下生成一个(ProjectName).mexw32文件。
5、在VS中单步调试MEX函数。
将matlab的current folder 设置成mexw32文件所在的路径,即Debug目录。(这步非常重要,要不无法调试调用)
vs2010-Tools-附加到线程 Attach to process-选择matlab。
在源代码Test.cpp里设置断点。
在matlab工程里输入代码或者函数(即mexw32文件的文件名,这里为ProjectName),即会跳转到vs的断点处。
然后按F10便可单步执行。
6、每次修改MexFunction所在的.cpp文件后,重新编译生成解决方案前都需要先在matlab工程下clear一下,即
clear (ProjectName).mexw32
注意:这步非常重要,因为matlab在调用该mex函数后还一直占用,未释放,必须要clear下,vs中才可重新编译生成解决方案。
好的,按照以上方法就可以任意编写可调试的mex函数啦。
调试成功后把(ProjectName).mexw32文件copy到任意matlab工程里,就可以像函数调用一样任意使用啦。
[参考]
1、VS2010中C++创建图解
2、Matlab中MEX文件的编写与调试
转载自:http://www.cnblogs.com/lukylu/p/4042306.html [峰回璐转]
- Mex文件在VS2010中调试方法
- vs2010中MEX文件建立与调试
- 转:在VS2010下编译、调试和生成mex文件
- 在VS2010平台下实现Mex程序的调试方法
- 在VC6中调试MEX文件
- 在VS2013中调试mex文件
- 在matlab2010中使用VS2010建立MEX文件
- MATLAB在VC2010中单步调试MEX文件
- 在vs2010中调试javascript代码方法。
- VC++中建立MEX文件及调试
- 怎样在Matlab2010a中使用VS2010的mex
- 在matlab中调用mex文件
- 在Visual studio中生成.mex文件
- 在Ubuntu下使用Eclipse调试mex源代码文件
- 在VS2010中调试javascript代码的方法
- 在VS2010 C++中调试DLL工程的方法
- 在VS2010 C++中调试DLL工程的方法
- 在VS2010 C++中调试DLL工程的方法
- C#-创建XML文件
- Gtk-Message: Failed to load module “overlay-scrollbar”的解决办法
- nginx配置详解
- iOS之CALayer核心动画详解
- php phpqrcode 生成二维码
- Mex文件在VS2010中调试方法
- 正则表达式匹配:包含且不包含
- 序列标注问题中将分类标签引入RNN网络结构的尝试
- 第五周项目-求正差值
- 安卓内存获取的常用方式(命令行||代码)
- 工作总结
- AlertDialog禁止按[返回键]或[搜索键]关闭
- Set集合中的——TreeSet的使用
- nginx图片防盗链