matlab compiler runtime怎么安装

如题所述

使用MATLAB Compiler

(一)准备

什么是MATLAB Compiler?MATLAB Compiler能够将你的matlab程序转换为自包含(self-contained)的应用程序和组件,这样你就可以将程序发放给你的终端用户,而且终端用户无需安装matlab就可以运行这些程序。MATLAB Compiler能够生成的应用或者组件包括下面这几类:

1、独立的应用程序
2、C和C++共享库(动态链接库,在Windows平台上是DLL,在Linux平台下是.so文件)
3、Excel插件
4、COM和.NET对象

本文中我们只看matlab是如何生成独立的应用程序的。其他组件生成方式可以参考matlab的帮助文档。注意:在你使用MATLAB Compiler和阅读相关说明文档之前,要求你一定要已经安装了MATLAB Compiler,也就是安装的时候必须要选中MATLAB Compiler复选框。在我使用的matlab 2005a上,安装的是MATLAB Compiler version 4。

假定你已经安装好了MATLAB Compiler。下面我们看一下与MATLAB Compiler相关的两个重要概念MCR和CTF。

MCR的全称是MATLAB Component Runtime,它是一组独立的共享库,通过它能够执行在MATLAB中编写的M文件。MCR支持MATLAB语言的所有功能。

CTF的全称是Component Technology File,这是一种归档技术,通过它,MATLAB将可部署文件包装起来。需要注意的是,位于CTF归档文件中的所有M文件都采用了AES(Advanced Encryption Standard)进行加密,AES的对成密钥则通过1024位的RSA密钥保护。除此之外,CTF还对归档文件进行了压缩。显然,通过这种方式,可以只将可知行的应用程序或者组件发布给终端用户,而保证源代码不被泄漏。

MATLAB Compiler的构建过程分为下面五步:
1、分析依赖关系
2、代码生成
3、创建归档文件(archive)
4、编译
5、链接

事实上,只有前面三步是针对M文件的,第四步和第五步和通常编译C或者C++程序毫无二致。因此,你可能会想到,这不就能够混合使用MATLAB和C以及C++了么?是的。MATLAB Compiler可以让你很简单很容易地做到这一点,不过这并不是本文要讲述的内容。

既然MATLAB Compiler是将M文件中的代码编译成C/C++接口,那么应该使用什么样的C/C++编译器呢?MATLAB Compiler支持的ANSI C和C++编译器有这样一些:
1、Lcc C version 2.4.1,这个是MATLAB Compiler自带的编译器,也是默认的编译器,但是它只能支持C代码;
2、Borland C++ version 5.5,5.6,以及5.5免费版
3、Microsoft Visual C/C++(MSVC)version 6.0和7.1
4、对于UNIX系统,支持的编译器是gcc和g++

(二)开始

要使用MATLAB Compiler,在MATLAB的command窗口或者DOS命令窗口输入mcc即可。比如,我们在MATLAB的command窗口下输入(本文中以加色的字符表示交互信息):

>> mcc

将会出现:

Error: No source files were specified (-? for help).
??? Error executing mcc, return status = 1.

这里的提示表明一定要给mcc指定源代码文件,也即使已经写好的M文件。你也可以输入:

>> mcc -?

或者:

>> help mcc

来获取mcc的帮助信息。当然,详尽的帮助文档应该参考MATLAB Help。

这里以我在上一篇日志中给出的write_dicom.m文件为例进行说明:
如果要生成独立的应用程序,那么只需要在MATLAB的command窗口或者DOS命令窗口输入:

>> mcc -m write_dicom

即可。如果要生成动态链接库,那么只需要将选项改为:

>> mcc -l write_dicom

即可。

注意,必须要确保write_dicom.m在MATLAB的当前工作目录下。否则会出错。
假设我现在是想生成独立的应用程序,那么在执行了:

>> mcc -m write_dicom

之后(在我的机器上这个过程可能需要一分钟左右,有点慢)。在当前工作目录下会多出这样一些文件:

write_dicom_main.c
write_dicom_mcc_component_data.c
write_dicom.ctf
write_dicom.exe

其中,write_dicom_main.c中是包裹函数,write_dicom_mcc_component_data.c中包含了解压write_dicom.ctf的数据(如密钥等)。而write_dicom.exe则是我们可以直接运行的应用程序,很遗憾,这里我们只能通过DOS命令窗口对它进行调用,不过这对于我们而言并没有什么,不是么?接下来,我们打开DOS命令窗口,切换到MATLAB的工作目录下面(也就是这里生成出来的几个文件所在的目录)。然后在命令行下输入:

C:\matlab2006\work>write_dicom yazhi.jpg yazhi.dcm
Extracting CTF archive. This may take a few seconds, depending on the
size of your application. Please wait...
...CTF archive extraction complete.
C:\matlab2006\work>

可以看到,write_dicom先从write_dicom.ctf抽取出相关的文件,注意到抽取完成之后在当前目录下会多出一个write_dicom_mcr\文件夹来。在这个文件夹中,不仅包含了原来的程序文件write_dicom.m,还包括了toolbox\下与DICOM读写等有关的M文件,但是这些文件都已经被加密了,直接用MATLAB Editor是看不到文件的真正内容的,出来的是一堆毫无意义的乱码。

上面的程序执行起来同样比较慢,不过,只要它能正确执行,谁在乎这点时间呢?况且我的机器配置并不好^_^

可以看到,此时,yazhi.dcm已经生成了,就在C:\matlab2006\work\目录下,我们同样可以用CVIEW.exe等等DICOM工具查看图像或者查看DICOM元数据(metadata)。
温馨提示:答案为网友推荐,仅供参考