matlab与c/c++ 混合编程之 MCR

什么是MCR?

MCR之前是 matlab component runtime的缩写,后更名为 matlab compiler runtime。MCR实际上是一组独立的共享库,也即是常说的动态连接库,所起的作用是使得你可以执行编译过的matlab文件,与matlab提供的另外两个库----数学库和图形库不同之处在于它支持matlab语言所有的特性,而不仅仅是数学计算和图形功能。换句话说他的作用就是给编译后的matlab文件执行提供一个环境。

matlab帮助系统对MCR的介绍

The MCR is an engine for execution of compiled MATLAB code.As such, when a compiled application runs, there is sometimes a delayas the MCR is initialized. There can be a delay the first time yourun the application, although typically less than you experience runningon the MATLAB desktop.

MATLAB Compiler RuntimeMATLAB Compiler 4 uses the new MATLAB Compiler Runtime (MCR), which is a standalone set of shared libraries that enable the execution of compiled MATLAB files, instead of the MATLAB C/C++ Math and Graphics Libraries. The MCR provides complete support for all features of the MATLAB language.

前边提到MCR支持matlab语言所有的特性,那么什么是所有?matlab帮助系统里的解释是这样的:

MATLAB Compiler supports the full MATLAB language and almost all MATLAB based toolboxes.

即matlab语言的特性是全部支持的,但工具箱属于对matlab的扩展,处于版权原因,不是所有的工具箱都可以被编译为C/C++库。那么什么样的功能是不允许编译的呢?帮助系统里给出了四条:
1>  不能通过命令行调用的功能不允许编译
2>   绝大部分matlab内置的图形用户接口函数以及与之相关的工具箱不允许编译,如Signal Processing Toolbox中的sptool
3>   还有一些工具箱如符号数学工具箱Symbolic Math Toolbox 同样不允许编译

而且,通过编译产生的代码并不适合嵌入式应用。

对此更详细的说明可以参考这个网页


你可能感兴趣的:(编程,matlab,application,工具,compiler,数学计算)