最近帮人调了一个程序,是网上公开的代码,利用matlab与c++混合编程做三维模型关键点检测,发现他们可以用VS2010编译、调试、生成mexw32文件,因此觉得之前在Matlab上利用mex命令真是弱爆了(非常繁琐且对于cpp文件多的根本无法用)。所以特此转载和记录如何用VS2010+matlab2012a编译生成mexw32的方法。
1.打开VS2010,新建一个win32 项目,之后选择dll,空项目,如下图:

2.添加源文件mex1.cpp,编写mexFunction函数:
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){
mexPrintf("Hello, world!\n");
}
3. 配置项目属性。
打开项目属性配置页,C++ -> 附加包含目录 加入MATLAB安装目录下的 \extern\include 路径。
链接器 -> 附加库目录 加入MATLAB的 \extern\lib\win32\microsoft 路径。
链接器 -> 输入 -> 附加依赖项 输入libmx.lib libeng.lib libmat.lib libme

本文介绍了如何在Visual Studio 2010中创建一个Win32 DLL项目,用于编译和调试MATLAB的mex文件。详细步骤包括设置项目属性,添加包含目录和库路径,链接器配置,定义预处理器宏,创建模块文件,修改生成后缀,并在调试时关联MATLAB。尽管在调试时可能会遇到缺少调试信息的错误提示,但可以通过忽略该错误继续进行调试。
977

被折叠的 条评论
为什么被折叠?



