在VS2010平台下实现Mex程序的调试方法

Mex程序实现了matlab调用c++的混合编程,但matlab并没有提供mex程序的调试平台(也有可能是我没有找到,欢迎大家补充),使得程序的调试很麻烦。
参考的文章链接如下:
Mex文件在VS2010中调试方法
MEX文件的调试

Matlab的版本是2012a, VS2010,机器是64位的。

编写mex文件

#include "mex.h"

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
    mexPrintf("hello matlab in C/CPP.\n");
}
  • 在VS2010中创建win32 dll 空项目(第二幅图中应该选dll)
    创建空项目
    空项目

  • 文件添加到源码目录

  • 修改各种配置
    这一步是关键,配置主要分三个部分,一个部分是引用部分的配置,第二个是库的配置,最后是输出文件的配置。

    引用配置(include)
    配置设定位置在解决方案属性页上的“c/c++”标签栏中设置,在“附加包含目录”中添加“matlab安装位置/…/extern/include”(include文件夹下面会有一个win64的文件夹,不要选)

    c\c++->常规

    库配置(lib)
    配置设定位置在解决方案属性页上的“链接器”标签栏中设置,在“附加包含目录”中添加“matlab安装位置/…/extern/lib/win64/microsoft”(32位机器将64改为32)

    链接器->常规
    在“附加依赖项”中添加文件 libmx.lib;libeng.lib;libmat.lib;libmex.lib
    链接器->输入
    输出文件配置
    在链接器标签栏中将输出文件的类型改为“.mexw64”(32位的改为mexw32)

    链接器->常规
    添加 hello.def 文件
    新建def文件,文件内容:

LIBRARY ;"hello"
EXPORTS mexFunction

选择64位的机器
win64位选择
编译运行
生成文件

  • 连接Matlab
    打开matlab,将当前文件夹设定在生成的hello.mexw64的文件夹中
    在VS2010 工具->附加到进程,选择Matlab进程。
    代码上加断点
    在matlab中运行函数,函数挂起在断点上
    成功
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值