使用Matlab时间长了,难免会碰到使用mex文件的经历,不管是别人的还是自己的,就比如MatConvNet(http://www.vlfeat.org/matconvnet/)使用了混合编程的技术实现训练速度的提高。
1. MEX的是什么?
写MEX程序其实就是写一个DLL程序,不出意外的话,按照mex文件规范生成的dll文件,把尾缀由dll改成mexw32/mexw64是都能是合理的。
2. VS2010中配置环境
打开VS2010, 新建项目, 选择MFC DLL,建立mextest项目.
a. 配置项目属性
打开项目属性配置页,
1) C++ -> 附加包含目录 加入MATLAB安装目录下的 externinclude 路径。
2) 连接器 -> 附加库目录 加入MATLAB的 externlibwin64microsoft 路径。
这个地方一定要对应自己的matlab版本,因为x64matlab的lib文件只能使用在64位的工程里面,同理32位的童鞋附加库路径就是 externlibwin32microsoft。
3) 连接器 -> 输入 -> 附加依赖项 输入libmx.lib; libeng.lib; libmat.lib; libmex.lib 这四个lib文件。
b. 编辑输出函数
在项目源文件的. def 中EXPORTS段加入 mexFunction, 如:
EXPORTS
; 此处可以是显式导出
mexFunction
如果生成的项目没有.def文件,那么有这么两个解决方法:
法① 你可以先在项目里添加个文件后缀名为.def 然后在设置链接器:项目->右键->属性->链接器->模块定义文件
法② 在工程右键,添加项,添加模块定义文件,搞定~
那到了这里,就配置完啦。
接下来就是如何在配置好的工程里面大展拳脚了!
1. 任何单位或个人认为本博的内容可能涉嫌侵犯其合法权益,可以及时的联系我(olenet#126#com),我会立即更正或删除。
2. 欢迎转载,记得贴链接^_^。www.cnblogs.com/OleNet