How can export a mex function from sources into a regular c++ function (shared library)) ?

조회 수: 6 (최근 30일)
How do I export mex functions (having the sources) into c++11 code (ie., without mex/matlab dependency) ?
Can I do that with the Library Compiler App [1] to create a shared c++ library (as source) ?
If not, how to adapt the mex functions into a regular c++11 ?

답변 (1개)

Mark McBroom
Mark McBroom 2019년 1월 19일
To clarify, you have mex functions and you want those translated to a C++ library? Assuming the source code is either C or C++, then you simply need to compile/link into a DLL. You can use any compiler/linker to do this ( vis studio, gcc, etc). If the C/C++ code relies on MATLAB libraries, you can use the mbuild command.
  댓글 수: 2
mathieu
mathieu 2019년 1월 19일
편집: mathieu 2019년 1월 19일
I actually want to export MEX sources into regular c++ sources, not the binaries in that case.
The same way we can export m functions into c/c++ sources (without matlab dependency).
The MEX sources (a custom matlab function written in c/c++) are relying on many MEX functions (eg., mxIsStruct, mexErrMsgTxt , mxGetField, mxGetPr, mxGetDimensions, mxGetClassID ...). If I transform code into another that does not depend on those mex functions, it would be what I call regular c++ code.
Mark McBroom
Mark McBroom 2019년 1월 21일
There is no way to generate C code for the MEX functions being used in your MEX sources... but the primary purpose of the MEX functions ( mxIsStruct, etc. ) is to all MATLAB to call your your C++ code. If you are planning to use your C++ code outside of MATLAB, then you no longer need these MEX functions. It sounds to me like you will have to modify your C++ code to get rid of all of the usages of MEX functions.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 C++ Shared Library Integration에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by