项目中遇到了一个情况,需要使用matlab来调用C++一个动态库,整理如下:
1. 需要安装mingw编译器
2. matlab去编译一个C++的包装函数(转接函数)
3. 包装函数(转接函数)里面去调用真正需要调用的C++逻辑
参开代码:
mex编译
mex('package.cpp', ...
'CXXFLAGS -std=c++17',...
'-g',...
'-IF:\include',... % 需要包含的头文件路径
'-lopencv_world422d',... % 需要使用的库路径
);
C++实现:
#include "Test.h"
#include "mex.h"
#include <iostream>
#include <string.h>
void mexPackFun(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
{
// 具体的C++逻辑
}