《MATLAB7.0编译器.ppt》由会员分享,可在线阅读,更多相关《MATLAB7.0编译器.ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、技术凝聚实力技术凝聚实力专业创新出版专业创新出版第19章 MATLAB 7.0编译器lMATLAB为用户提供了简单、明快的语法,功能强大的内置函数,丰富多样的工具箱,可以满足各专业领域的需要。利用MATLAB,用户只需很少的代码就能实现一些复杂的功能。用户也许希望自己编写的程序脱离MATLAB环境独立运行,或嵌入到其他开发环境(如VS)中的工程中,或嵌入到PPT中加以展示,这正是MATLAB编译器所要完成的工作之一。l基于程序执行效率的考虑,也是使用MATLAB编译器的一个主要原因。我们知道MATLAB程序语言是一种边解释边执行的程序语言,其执行效率远低于二进制代码。通过MATLAB编译器,用
2、户可以将MATLAB程序转换成二进制代码形式存在的可执行程序,如独立MATLAB环境的可执行程序、函数库(DLL)或组件(COM、ActiveX等)等,从而大大提升执行效率。技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.1 MATLAB编译器简介lMATLAB Compiler是MATLAB应用程序集成与发布的一种重要工具。MATLAB Compiler能够将MATLAB的M函数文件转换成独立可执行的应用程序、可发布的应用程序函数库(DLL)或组件(如COM、ActiveX等),这些应用程序组件能够脱离MATLAB环境在不同的平台上应用。特别是在最新版的MATLAB7.0中,MATLA
3、B Compiler的功能得到很大的提升和扩展,几乎可以编译所有的工具箱函数。l本节首先简要介绍MATLAB Compiler 4的工作原理和过程,并讨论MATLAB Compiler 4与早期版本MATLAB Compiler的差别;第节列出了MATLAB Compiler 4的主要功能和缺陷;第节介绍了脚本文件与函数文件的转换。技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.1.1 MATLAB Compiler 4lMATLAB Compiler 4是在第三方C/C+编译器的支持下,将MATLAB的M函数文件转换为可独立执行的应用程序、函数库或组件的应用程序发布工具。MATLAB
4、Compiler 4与早期版本的MATLAB Compiler有所不同,早期的MATLAB Compiler只是将M函数文件转变成标准C/C+源代码,然后由第三方C/C+编译器将其编译成独立可执行的应用程序、函数库或组件等。lMATLAB Compiler 4由三个组件构成,即MATLAB Compiler、MATLAB Component Runtime(MCR)和Component Technology File(CTF)。其中MATLAB Compiler组件是MATLAB Compiler 4提供给用户用于应用程序发布的界面,是包含若干交互式命令和命令行开关选项的工具命令行。技术凝聚实
5、力技术凝聚实力专业创新出版专业创新出版19.1.2 MATLAB Compiler 4的功能和局限性lMATLAB Compiler 4比起早期版本的MATLAB 编译器性能有很大的提升,这主要体现在对MATLAB各项功能的支持上有很大扩展,特别是对工具箱函数的支持。下面列出了MATLAB Compiler 4的几个应用:l独立可执行应用程序:不需要MATLAB 7.0软件环境的支持,可以在没有安装MATLAB的计算机上运行;lC与C+共享库(在Windows操作系统中为动态连接库DLL);lExcel附件:需要MATLAB 7.0 Builder;lCOM附件:需要MATLAB 7.0 Bu
6、ilder。技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.1.3 脚本文件与函数文件的转换l针对MATLAB Compiler不能处理脚本文件的问题,用户可以事先将脚本文件转换为M函数文件,然后利用编译器编译该M函数文件。l熟悉M程序设计(参考本书第15章)的用户应当知道脚本文件与函数文件的转换是十分容易的,只需在脚本文件的开头添加一行函数声明即可。下面仅通过一个简单的示例说明如何使用编译器编译脚本文件。技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.2 编译器的安装和设置l在使用MATLAB Compiler之前用户需要正确地安装MATLAB、MATLAB Compiler及一
7、个MATLAB Compiler支持的第三方C/C+编译器,而且需要对MATLAB Compiler进行合理的配置。本节首先介绍编译器的安装和配置,最后介绍MCR的安装,这是MATLAB外部应用程序运行必需的环境支持。技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.2.1 安装编译器lMATLAB Compiler 4至少需要MATLAB 7.0的支持,在MATLAB安装过程中要确保“MATLAB Compiler”被选中(默认情况)。lMATLAB对第三方C/C+编译器的支持是比较广泛的,下面列出了Windows平台下MATLAB Compiler 4支持的常用第三方C/C+编译器。l
8、Lcc C:MATLAB 7.0自带的编译器,仅能够编译C代码,不能编译C+代码。lBorland C+:适用版本为5.3、5.4、5.5和5.6。lMicrosoft Visual C/C+(MSVC):适用版本为6.0、7.0和7.1。l用户可以通过在命令窗口输入指令mbuild setup查看编译器支持的第三方C/C+编译器,详细内容参考第节的编译器设置。技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.2.2 设置编译器l完成编译器的安装工作之后,还不能正常地使用编译器进行应用程序发布,用户需要对编译器进行相关的设置。编译器的设置在第一次使用MATLAB编译器或修改编译器安装路径后
9、进行。另外如果用户需要选择其他的第三方C/C+编译器,也需要重新设置MATLAB编译器。完成编译器设置之后,用户就可以直接使用选定的第三方C/C+编译器完成应用程序的发布工作。l用户可以在操作系统或MATLAB的命令窗口中利用如下指令:l mbuild-setup技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.2.3 安装MCRl第19.1节中提到MATLAB Compiler 4由三个组件构成,即MATLAB Compiler、MATLAB Component Runtime(MCR)和Component Technology File(CTF)。MATLAB Component Ru
10、ntime集成了MATLAB所有的语言特性和核心共享函数库,由MATLAB Compiler创建的独立可执行应用程序、函数库或组件的正常运行都需要MCR的支持。l在进行应用程序发布时,考虑到最终用户的计算机上可能没有安装MATLAB,用户需要将编译生成的目标文件,连同相应的CTF文件和MCR安装文件一并打包发布给最终用户。最终无须拥有MATLAB环境,只需要安装MCR,就能正常运行发布的应用程序。l如果发布的是独立可执行应用程序,则需要发布给最终用户的是CTF文件和MCR安装文件;如果发布的是动态共享库,则需要发布给最终用户的是动态库文件(DLL)、相应的头文件(.h)、库文件(.lib)以及
11、CTF文件和MCR安装文件。技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.3 编译器使用入门l本节将具体介绍MATLAB Compiler的使用方法。首先详细讨论mcc编译命令的用法,主要是各类编译选项的含义等;在此基础上以示例的形式介绍M函数文件的完整编译过程,第节介绍了含绘图指令的M文件编译。技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.3.1 mcc编译指令lmcc编译指令是MATLAB Compiler提供给用户进行应用程序发布的一组命令行工具,用户通过设置不同的开关选项完成各种不同的应用程序发布任务。下面分别给出了MATLAB Compiler 4和MATLAB Co
12、mpiler3两个版本的mcc使用方法。技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.3.2 M文件编译l前面的一小节对mcc的使用进行了概要式的介绍,本小节及下一小节通过两个例子分别讨论M文件和含绘图指令的M文件的编译过程,目的是熟悉mcc的使用方法。技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.3.3 编译含绘图指令的M文件l强大的图形功能和灵活的数据可视化能力是MATLAB流行的重要原因。本小节讨论如何将包含绘图指令的MATLAB应用程序转换为独立可执行应用程序。技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.4 由M文件创建独立可执行应用程序l第19.3节的两个示
13、例已经详细讨论了如何利用MATLAB Compiler生成独立可执行的应用程序,这两个例子中的M函数文件都是具有输入参数的函数文件,一般很少将具有参数的M文件直接转换为独立可执行应用程序,而是另外编写一个不含参数的M文件作为主函数文件,通过主函数文件调用含参数的M函数文件。l第节例19.2中的M函数文件包含参数n,在系统命令窗口调用生成的可执行应用程序时,输入参数以字符的形式传入函数之中,因此在函数的开始需要将其转换数值类型,否则会出现执行错误。这里的输入参数仅是一个数值标量,如果输入参数为矩阵,那么将很难通过系统命令窗口运行程序。技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.5 由M
14、文件创建函数库(DLL)l用户可以利用MATLAB Compiler将M函数文件编译为共享函数库(DLL),这些共享函数库可以被C/C+/FORTRAN等高级语言调用。本节介绍如何由M文件生成C共享函数库,以及如何在C中调用这些函数的方法。技术凝聚实力技术凝聚实力专业创新出版专业创新出版19.6 小结lMATLAB编译器是MATLAB与其他程序语言(如C/FORTRAN等)实现交互的最重要方法,通过本章的学习,读者应当掌握以下内容:lMATLAB编译器的主要功能;lMATLAB编译器的基本工作流程;lMATLAB编译器的安装和设置;lmcc编译指令;l利用MATLAB编译器生成独立可执行应用程序;l利用MATLAB编译器生成共享函数库。