24,854
社区成员
发帖
与我相关
我的任务
分享
(一)准备
什么是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、链接
既然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的command窗口或者DOS命令窗口输入:
>> mcc -m write_dicom
即可。如果要生成动态链接库,那么只需要将选项改为:
>> mcc -l write_dicom
即可。