以我编译 imResampleMex.cpp 为例
先确保文件夹中有所以需要的文件,包括cpp、hpp文件等。 例如imResampleMex.cpp 中有下面头文件:
#include "wrappers.hpp"
#include "string.h"
#include <math.h>
#include <typeinfo>
#include "sse.hpp"
那么你需要
"wrappers.hpp"
#include "sse.hpp"
如果没有,那就直接上google,或者百度单独下载,其他的.h文件我使用的时候是不需要的。
- 将matlab(我使用的是2018b)工作目录设置为你文件所在目录
- 在matlab命令窗口输入:
mex -setup 弹出上面消息,我们选择第一个C++编译器 弹出上面消息,说明设置成功,警告不用管。 - 在matlab命令窗口输入:
mex imResampleMex.cpp (或者直接用下面报错后的命令mex('imResampleMex.cpp','-compatibleArrayDims') 试试。) 显示上面消息,说明编译成功。 在工作目录生成了: imResampleMex.mexw64文件
使用时出现错误了:
matlab和C语言混合编程。新的matlab编译C程序到mex文件时,需要加上参数 ‘-compatibleArrayDims’
重新使用该命令编译:mex('imResampleMex.cpp','-compatibleArrayDims') 完美解决。 参考: https://bbs.csdn.net/topics/396625015 https://github.com/zhirongw/3DShapeNets/issues/4
|