还是以上次的简单函数add为例。
// add.c
#include "mex.h" // 使用MEX文件必须包含的头文件//
执行具体工作的C函数
double add(double x,double y)
{
return x +
y;
}// MEX文件接口函数
void mexFunction(
int nlhs,
mxArray *plhs[],
int nrhs,
const mxArray *prhs[]) {
double *a;
double b, c;
plhs[0] = mxCreateDoubleMatrix(1, 1, mxREAL);
a = mxGetPr(plhs[0]);
b = *(mxGetPr(prhs[0]));
c = *(mxGetPr(prhs[1]));
*a = add(b, c);
}
以上已经建立好了add.c文件啦。然后进行以下步骤:
步1、在matlab命令行 mex
-setup,然后选择编译器,我们这选择microsoft的VC++
6.0.
步2、在matlab命令行输入 mex add.c -output
add,这时会产生链接add.mexw32。
如果你是要一个调试版本,就在命令行中加上-g开关。如果你对C/C++编译器还有些参数要指定,可以将
/bin/win32/mexopts/msvc60opts.bat拷贝到当前目录下修改之,再加上-f
就行了。例如:我们这用mex add.c -g -output
add,这里除了产生add.mexw32,还有add.ilk,add.pdb。
步3、在cmd下键入msdev 目录\add.mexw32。现在,vc打开了,打开你要调
试的C/C++文件,这个例子中就是add.c,设置好断点,按Alt+F7,在
Debug表单的Excuitable for debug session中键入D:\Program
Files\MATLAB71\bin\win32\matlab.exe(matlab的安装目录)就行了。按F5,MATLAB就被打
开,好,可以工作了,在命令行输入add(1,2);然后程序就会在add.c设置了断点的地方中断。这时只有在VC下调试就行。^_^
阅读(3392) | 评论(0) | 转发(0) |