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文件的编写与调试

转载于:https://www.cnblogs.com/wjgaas/p/4994292.html

Mex文件在VS2010中调试方法相关推荐

  1. java 压缩多个文件_java实现一次性压缩多个文件到zip中的方法示例

    本文实例讲述了java实现一次性压缩多个文件到zip中的方法.分享给大家供大家参考,具体如下: 1.需要引入包:import java.io.File; import java.io.FileInpu ...

  2. MATLAB中MEX文件的编写与调试

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com http:/ ...

  3. Iocomp控件IPlot在VS2010中使用方法(区别VC6.0)

    首先,本文介绍Iocomp控件在VS2010中的使用,Iocomp控件的安装文件和安装教程在本人资源中有,可以下载. Iocomp控件在VS2010中的使用主要是IPlot控件与VC6.0有区别,其余 ...

  4. java中io流如何创建一个文件_,Java中Io流操作-File类的常用操作-创建文件,创建文件夹...

    package com.hxzy.IOSer; import java.io.File; import java.io.IOException; public class Demo03 { publi ...

  5. Java反射机制demo(五)—获得并调用一个类中的方法

    这个demo在使用反射机制操作属性之前,主要原因是因为在.class文件字节码中,方法排在属性的前面. 1,获得一个类中的方法 先看一下方法和运行结果.获取所有的方法使用Class类中getMetho ...

  6. java io 创建文件夹_Java中Io流操作-File类的常用操作-创建文件,创建文件夹

    package com.hxzy.IOSer; import java.io.File; import java.io.IOException; public class Demo03 { publi ...

  7. matlab建立mex,手把手教你在VC++中建立MEX文件及调试

    在Visual C++中建立MEX文件及调试 在Matlab环境中可以方便的编辑MEX文件,而编译MEX文件只要一句mex命令,所以一般不需要VC++环境来建立MEX文件.但对于大型的MEX程序,可能 ...

  8. vs2010中的ipch文件夹和sdf文件,及禁用后没有资源视图的解决方法

    vs2010中的ipch文件夹和sdf文件 vs2010打开某个工程 ,转换成功之后,在工程目录看见一个sdf文件和一个ipch文件夹,都超大(起码几十M),我一个四百多k 的工程,结果用vs打开过后 ...

  9. 在VS2010中去掉ipch和sdf文件方法

    使用VS2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大.本文介绍两种方法使得在vs2010中不产 ...

最新文章

  1. Python入门100题 | 第014题
  2. dnf剑魂buff等级上限_剑魂完美换装BUFF!远古遗愿的用处很大么?
  3. matlab元件阻感负载,单相桥式全控整流电路阻感负载课程设计matlab
  4. 001.Linux开机启动过程
  5. java concurrent之前戏synchronized
  6. css3点击会移动到点,CSS3过渡点击事件
  7. SAP License:数据导入时的问题与总结
  8. 我的java编程之路小小总结感想
  9. Android 开源项目分类汇总(转)
  10. arm-linux-gcc交叉编译器和gcc编译器的下载地址
  11. Unity 使用video player播放360全景视频
  12. oracle18c18.3,oracle 18c客户端提供下载了
  13. 用c语言编程,统计大写字母,小写字母,数字,其他字符的个数,用C语言:输入一行字符,不超过50个,统计出其中英文大写字母,小写字母,数字,空格以及其他字符个数...
  14. 微信小程序“errMsg“:“openSetting:fail can only be invoked by user TAP gesture.“
  15. 吴恩达机器学习课后作业——神经网络
  16. 如何在Android上玩经典复古游戏
  17. MFC中使用sqlite3操作数据库 创建,插入数据,查询数据
  18. 开源的php网站程序,免费PHP开源CMS网站程序
  19. C++基础知识与开发环境【修订版】
  20. ISO9001质量管理体系认定标准

热门文章

  1. kl距离 java_信息量、熵、最大熵、联合熵、条件熵、相对熵、互信息。
  2. mysql 事物状态有几种_MySQL知识点汇总:亿级高并发数据库运转原理大公开!
  3. android 切换排列,在运行时重新排序android线性布局?
  4. linux检测文件名编码,Linux下查看文件编码,文件或文件名编码格式转换 | 缥缈的云...
  5. 端口镜像 流量过滤_技术盛宴 | 流量可视化之ERSPAN的前世今生
  6. 运维基础(13)日志切割工具 Logrotate
  7. windows11推出:win10可免费升级,支持安卓APP,减重40%
  8. 熟悉 Linux 系统结构,推开Linux 大门
  9. 计算机性能和显卡的提升,提高显卡性能,详细教您怎么提高显卡性能
  10. 云原生存储系列文章(一):云原生应用的基石