欢迎来到163文库! | 帮助中心 精品课件PPT、教案、教学设计、试题试卷、教学素材分享与下载!
163文库
全部分类
  • 办公、行业>
  • 幼教>
  • 小学>
  • 初中>
  • 高中>
  • 中职>
  • 大学>
  • 招考、培训>
  • ImageVerifierCode 换一换
    首页 163文库 > 资源分类 > PPTX文档下载
    分享到微信 分享到微博 分享到QQ空间

    《新编MATLAB&Simulink自学一本通》课件第21章 MATLAB程序编译.pptx

    • 文档编号:5716980       资源大小:1.07MB        全文页数:117页
    • 资源格式: PPTX        下载积分:15文币     交易提醒:下载本文档,15文币将自动转入上传用户(momomo)的账号。
    微信登录下载
    快捷注册下载 游客一键下载
    账号登录下载
    二维码
    微信扫一扫登录
    下载资源需要15文币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    优惠套餐(点此详情)
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、试题类文档,标题没说有答案的,则无答案。带答案试题资料的主观题可能无答案。PPT文档的音视频可能无法播放。请谨慎下单,否则不予退换。
    3、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者搜狗浏览器、谷歌浏览器下载即可。。

    《新编MATLAB&Simulink自学一本通》课件第21章 MATLAB程序编译.pptx

    1、2023-5-5 MATLAB编译器的工作机理编译器的工作机理 MATLAB编译器的安装与配置编译器的安装与配置 编译编译 部署部署 典型案例介绍典型案例介绍本章的主要内容包括:本章的主要内容包括:2023-5-5第一节第一节 MATLAB编译器的工作机理编译器的工作机理2023-5-5 MATLAB编译器产品简介;编译器产品简介;MATLAB编译器的功能;编译器的功能;几个要点:几个要点:关于关于MATLAB编译器产生的应用程序或运行库;编译器产生的应用程序或运行库;关于打包器(关于打包器(wrapper)文件;)文件;组件技术文件(组件技术文件(CTF););本节的主要内容包括:本节的主要

    2、内容包括:2023-5-5MATLAB编译器产品编译器产品是是MATLAB 应用程序集成与发应用程序集成与发布的一种重要工具,它是一个运行于布的一种重要工具,它是一个运行于MATLAB环境的环境的独立工具。独立工具。MATLAB编译器可以编译器可以将将M文件、文件、MEX文文件、件、MATLAB对象或其它对象或其它MATLAB代码转换为代码转换为C/C+代码代码,然后再调用外部,然后再调用外部C/C+编译器把产生的源代码编译器把产生的源代码编译、链接成独立的应用程序、库、编译、链接成独立的应用程序、库、COM对象以及对象以及Excel插件。插件。MATLAB编译器产品简介编译器产品简介2023

    3、-5-5(1)将将M文件编译成为可以在文件编译成为可以在UNIX、Windows和和Macintosh操作系统上独立运行的应用程序。操作系统上独立运行的应用程序。独立独立运行的应用程序运行的应用程序就是在其运行过程中可以不需要就是在其运行过程中可以不需要MATLAB软件的同时运行,此外,也可以在没有软件的同时运行,此外,也可以在没有安装安装MATLAB软件的计算机上运行这些应用程序。软件的计算机上运行这些应用程序。(2)将将M文件编译成为文件编译成为C和和C+共享函数库(在共享函数库(在Windows系统上应用的系统上应用的动态链接库动态链接库DLLs,Linux 和和 UNIX 系统下为系统

    4、下为共享的库文件共享的库文件)。)。MATLAB编译器的功能编译器的功能2023-5-5(3)MATLAB Builder EX可以将可以将MATLAB函数打包,以函数打包,以便便Microsoft Excel用户可以通过用户可以通过VBA在在Excel程序中访问这程序中访问这些函数。些函数。(4)MATLAB Builder JA可以将可以将MATLAB中的中的M代码函代码函数封装到数封装到Java类中。类中。Java类是类是Java代码的一部分,包含了代码的一部分,包含了Java方法以及执行动作的单元。方法以及执行动作的单元。(5)MATLAB Builder NE可以将可以将MATLAB

    5、函数打包,以函数打包,以便便.NET用户可以从任何用户可以从任何CLS相兼容的语言中访问这些函数。相兼容的语言中访问这些函数。2023-5-5一、一、关于关于MATLAB编译器产生的应用程序或运行库编译器产生的应用程序或运行库 当用户打包和部署由当用户打包和部署由MATLAB编译器产生的应用程序和运行库时,编译器产生的应用程序和运行库时,必须包含必须包含MATLAB编译器编译器运行库运行库(MATLAB Compiler Runtime,简称,简称MCR)以及由编译器产生的一系列支持文件。同时,必须在目标计算)以及由编译器产生的一系列支持文件。同时,必须在目标计算机上指定这些文件的系统路径,以

    6、便系统能够找到这些文件。机上指定这些文件的系统路径,以便系统能够找到这些文件。MATLAB编译器产生的应用程序或运行库包括两部分:编译器产生的应用程序或运行库包括两部分:一个平台相一个平台相关的二进制文件关的二进制文件以及以及一个包含一个包含MATLAB函数和数据的文档(函数和数据的文档(CTF)。)。应用程序的二进制文件由一个主函数组成,而运行库的二进制文件由多应用程序的二进制文件由一个主函数组成,而运行库的二进制文件由多个用户输出的函数组成。个用户输出的函数组成。几个要点:几个要点:2023-5-5二、关于打包器(二、关于打包器(wrapper)文件)文件 要产生用户指定的、平台相关的二进

    7、制文件,编译器产生一个或多个打包器要产生用户指定的、平台相关的二进制文件,编译器产生一个或多个打包器文件。文件。打包器文件提供了指向被编译的打包器文件提供了指向被编译的M代码的接口(函数),通过这些接口,代码的接口(函数),通过这些接口,打包器文件可以创建打包器文件可以创建MATLAB编译器生成的代码与所支持的可执行程序(如独编译器生成的代码与所支持的可执行程序(如独立应用程序或库)立应用程序或库)之间的链接之间的链接。打包器文件依据执行环境的不同而不同。打包器文件依据执行环境的不同而不同。打包器文件主要实现如下功能:打包器文件主要实现如下功能:(1)通过特定的接口(函数)通过特定的接口(函数

    8、)执行初始化和终止工作执行初始化和终止工作。(2)定义定义包含路径信息、密钥以及包含路径信息、密钥以及MCR所需的其它信息的所需的其它信息的数据数组数据数组。(3)提供必需的代码,提供必需的代码,用来将调用信息从接口函数传递给包含在用来将调用信息从接口函数传递给包含在MCR中的中的MATLAB函数。函数。(4)对于应用程序,)对于应用程序,包含主函数(包含主函数(main函数)。函数)。(5)对于运行库,)对于运行库,包含每个公开的包含每个公开的M函数的入口点函数的入口点。当使用编译器产生的运。当使用编译器产生的运行库时,在客户端代码中调用库初始化和终止例程。行库时,在客户端代码中调用库初始化

    9、和终止例程。2023-5-5三、组件技术文件(三、组件技术文件(CTF)组件技术文件组件技术文件(Component Technology File,简称,简称CTF)。)。MATLAB编译器在编译的同时也产生组件技术文件(编译器在编译的同时也产生组件技术文件(CTF),该文件),该文件独立于应用程序或运行库,并于每个操作系统平台相关的。该文件独立于应用程序或运行库,并于每个操作系统平台相关的。该文件以以.ctf作为后缀作为后缀,包含定义应用程序或运行库的,包含定义应用程序或运行库的MATLAB函数和数据,函数和数据,并且在默认的情况下,内嵌于共享的并且在默认的情况下,内嵌于共享的C/C+库和

    10、独立的应用程序的二进库和独立的应用程序的二进制文件中。制文件中。2023-5-5第二节第二节 MATLAB编译器的安装及配置编译器的安装及配置2023-5-5 安装要求;安装要求;编译器的安装;编译器的安装;编译器的配置;编译器的配置;本节的主要内容包括:本节的主要内容包括:2023-5-5一、安装要求一、安装要求 在安装在安装MATLAB编译器之前,用户必须确保在系统中安编译器之前,用户必须确保在系统中安装了合适版本的装了合适版本的MATLAB软件。软件。MathWorks 公司的网站公司的网站上提供了相关的信息,用户可在以下网页中查找编译器的上提供了相关的信息,用户可在以下网页中查找编译器

    11、的相关信息:相关信息:http:/ MATLAB编译器的正常运行编译器的正常运行对操作系统或内存对操作系统或内存都没有特都没有特别的要求,只要操作系统和内存都支持别的要求,只要操作系统和内存都支持MATLAB软件的软件的正常运行即可。正常运行即可。1、系统要求、系统要求2023-5-5 MATLAB编译器还需要在系统中安装其所支持的编译器还需要在系统中安装其所支持的ANSI C/C+编译器,例如:编译器,例如:Borland C/C+、Microsoft Visual C+、WatcomC/C+、Lcc C编译器等。编译器等。通常,通常,MATLAB编译器都支持第三方编译器的当前版本编译器都支

    12、持第三方编译器的当前版本以及旧的版本。对于以及旧的版本。对于MATLAB以及以及MATLAB编译器所支编译器所支持的最新的编译器列表,请参照持的最新的编译器列表,请参照MathWorks公司技术支公司技术支持部门的技术备忘录,其网址为:持部门的技术备忘录,其网址为:http:/ C/C+Windows平台编译器平台编译器 使用如下的使用如下的32位的位的C/C+编译器可以产生编译器可以产生32位位Windows动动态链接库(态链接库(DLLs)或)或Windows应用程序(以应用程序(以MATLAB V4.14(R2010b)编译器为例):)编译器为例):(1)Lcc C 2.4.1(包含于(

    13、包含于MATLAB中),这仅是个中),这仅是个C编编译器,不针对译器,不针对C+。(2)Microsoft Visual C+(MSVC)6.0、8.0、9.0、10.0。(3)Intel C+11.1。(4)Open Watcom 1.8。(5)Intel Visual Fortran 10.1、11.1。(6)Microsoft.NET Framework SDK 2.0、3.0、3.5。(7)Sun Java Development Kit(JDK)1.6。(1)支持的)支持的ANSI C/C+UNIX平台编译器平台编译器 在在Solaris平台上,平台上,MATLAB编译器支持本地系统

    14、编译器;编译器支持本地系统编译器;在在Linux、Linux x86-64和和Mac OS X平台上,平台上,MATLAB编编译器支持译器支持gcc和和g+。2023-5-5二、编译器的安装二、编译器的安装 MATLAB编译器包含于编译器包含于MATLAB软件产品中。因此,如软件产品中。因此,如果用户初次安装果用户初次安装MATLAB软件产品,可以在安装的过程软件产品,可以在安装的过程中选中要安装的中选中要安装的MATLAB编译器产品,然后执行标准安编译器产品,然后执行标准安装。装。如果在初次安装的过程中没有选中如果在初次安装的过程中没有选中MATLAB编译器产品,编译器产品,可以重新运行安装

    15、程序,选中要安装的可以重新运行安装程序,选中要安装的MATLAB编译器编译器产品,然后安装即可。产品,然后安装即可。1、安装、安装MATLAB编译器产品编译器产品 2023-5-5安装安装MATLAB软件的过程中选择安装编译器产品软件的过程中选择安装编译器产品2023-5-5 要安装要安装ANSI C/C+编译器,需要执行包含有编译器,需要执行包含有C/C+编译器的安装向导,正常安装并正确配置编译器的安装向导,正常安装并正确配置即可。即可。用户在安装用户在安装C/C+编译器时可能会遇到编译器时可能会遇到有关配置有关配置的问题的问题,下表提供了有关配置信息的常见问题。,下表提供了有关配置信息的常

    16、见问题。2、安装、安装ANSI C/C+编译器编译器 2023-5-5问题描述安装选项建议完全安装编译器。如果只安装一部分,可能会忽略MATLAB编译器所必需的组件安装调试器文件对于MATLAB编译器产品来说,没有必要安装调试器(DBG)文件微软基础类库(MFC)不需要16位动态链接库(DLLs)不需要ActiveX不需要从命令行中运行选择编译器从命令行运行的所有相关选项更新注册表根据安装程序需要而定安装Microsoft Visual C+6.0如果需要改变编译器的安装位置,就必须改变Common文件夹的位置;不要改变VC98文件夹的默认位置2023-5-51、关于关于mbuild的应用的应

    17、用 三、编译器的配置三、编译器的配置 用户使用用户使用mbuild脚本可以方便地指定一个选项文件(脚本可以方便地指定一个选项文件(options file),),该选项文件允许用户进行如下操作:该选项文件允许用户进行如下操作:为每个可支持的编译器为每个可支持的编译器 设置默认的编译器和连接器选项;设置默认的编译器和连接器选项;修改编译器或编译器设置;修改编译器或编译器设置;创建应用程序。创建应用程序。mbuild简化了设置简化了设置C或或C+编译器的过程,用户只需使用编译器的过程,用户只需使用mbuild的的setup选项即可一次性确定所要使用的第三方编译器。选项即可一次性确定所要使用的第三方

    18、编译器。MATLAB 编译器(编译器(mcc)产品在一定的条件下自动启动)产品在一定的条件下自动启动mbuild。特。特别地,别地,mcc m或或mcc-l(小写的(小写的L)将启动)将启动mbuild来执行编译和连接。来执行编译和连接。2023-5-52、配置配置ANSI C或或C+编译器编译器说明:说明:选项文件选项文件包含用来控制已安装的编译器的标志或设置,选包含用来控制已安装的编译器的标志或设置,选项文件是与编译器相关的,项文件是与编译器相关的,MathWorks公司对不同的公司对不同的C/C+编译器都提供了不同的选项文件。用户可以根据需编译器都提供了不同的选项文件。用户可以根据需要修

    19、改选项文件的内容,但在通常情况下,用户不必关心要修改选项文件的内容,但在通常情况下,用户不必关心选项文件的内容,而只是简单地选项文件的内容,而只是简单地使用使用mbuild的的setup选项选项来配置来配置C或或C+编译器即可。编译器即可。使用下面的命令可以选择一个默认的编译器:使用下面的命令可以选择一个默认的编译器:mbuild setup2023-5-5【例例】配置编译器配置编译器 mbuild setup%调用调用mbuild脚本来启动配置脚本来启动配置Please choose your compiler for building standalone MATLAB applicati

    20、ons:%启动启动MATLAB的自定位系统,的自定位系统,MATLAB会自动搜索系统中安装的编译器会自动搜索系统中安装的编译器Would you like mbuild to locate installed compilers y/n?y Select a compiler:1 Lcc-win32 C 2.4.1 in D:PROGRA1MATLABR2008asyslcc 2 Microsoft Visual C+6.0 in D:Program FilesMicrosoft Visual Studio 0 None Compiler:2%选择编译器选择编译器 Please verify

    21、your choices:%确定选择的编译器确定选择的编译器Compiler:Microsoft Visual C+6.0 Location:D:Program FilesMicrosoft Visual Studio Are these correct y/n?y%结束配置结束配置Trying to update options file:C:Documents and SettingsAdministratorApplication DataMathWorksMATLABR2008acompopts.bat From template:D:PROGRA1MATLABR2008abinwin

    22、32mbuildoptsmsvc60compp.bat Done.2023-5-5验证编译器配置是否正确?验证编译器配置是否正确?在当前目录中创建在当前目录中创建test.m文件,文件内容很简单:弹出信息框,显文件,文件内容很简单:弹出信息框,显示示“Hello,World!”信息。信息。在命令窗口中调用在命令窗口中调用mcc对对test.m文件进行编译:文件进行编译:mcc-m test.m编译完成后,产生编译完成后,产生test.exe文件,用鼠标双击即可正常运行,表明文件,用鼠标双击即可正常运行,表明编译器设置正确。编译器设置正确。2023-5-53、选项文件、选项文件 MATLAB软件

    23、中包含了用于软件中包含了用于Windows平台和平台和UNIX平台的平台的预置选项文件,如下表所列(以预置选项文件,如下表所列(以MATLAB R2008a为例)。为例)。(注:这些选项仅适用于(注:这些选项仅适用于32位位MATLAB软件)。软件)。通常情况下,用户不必关心选项文件是如何工作的。当然,通常情况下,用户不必关心选项文件是如何工作的。当然,用户也可以根据自己的需要来修改选项文件。用户也可以根据自己的需要来修改选项文件。2023-5-5选项文件选项文件编译器编译器Windows平台(选项文件位于:matlabroot根目录binwin32mbuildopts路径下)lcccompp

    24、.batLcc C,V2.4.1(包含于MATLAB中)msvc60compp.batmsvc71compp.batmsvc80compp.batmsvc80freecompp.batMicrosoft Visual C/C+,V6.0Microsoft Visual C/C+,V7.1Microsoft Visual C/C+,V8.0Microsoft Visual C/C+,V8.0 Express EditionUNIX平台(选项文件位于:matlabroot根目录/bin/目录下mbuildopts.shSolaris平台下,使用本地的ANSI编译器;对于Linux和Macintos

    25、h平台,使用gccMATLAB中的预置选项文件列表:中的预置选项文件列表:2023-5-5 要定位在要定位在Windows系统下的选项文件,系统下的选项文件,mbuild脚本按照如下的顺序进行搜索:脚本按照如下的顺序进行搜索:(1)当前目录;)当前目录;(2)Windows系统的用户配置文件目录。系统的用户配置文件目录。Windows系统的用户配置目录中包含了诸如桌面外观、最近使用的文件、系统的用户配置目录中包含了诸如桌面外观、最近使用的文件、“开开始始”菜单中的项目等用户信息。菜单中的项目等用户信息。mbuild将在将在-setup过程中创建的选项文件过程中创建的选项文件compopts.b

    26、at保存到用户配置文件目录的一个子目录中(例如保存到用户配置文件目录的一个子目录中(例如C:Documents and SettingsAdministratorApplication DataMathWorksMATLABR2008a),如下),如下图所示。图所示。初次运行初次运行mbuild命令时,它会在上述两个路径中搜索选项文件,一旦找到选项命令时,它会在上述两个路径中搜索选项文件,一旦找到选项文件则停止搜索,并使用该选项文件。如果没有搜索到选项文件,则文件则停止搜索,并使用该选项文件。如果没有搜索到选项文件,则mbuild搜索搜索计算机上已安装的编译器,并为该编译器使用计算机上已安装的

    27、编译器,并为该编译器使用MATLAB预置的选项文件;如果预置的选项文件;如果计算机上有多个编译器,则提示用户选择一个编译器。计算机上有多个编译器,则提示用户选择一个编译器。关于关于Windows操作系统中的选项文件操作系统中的选项文件2023-5-52023-5-5要定位在要定位在UNIX系统下的选项文件,系统下的选项文件,mbuild脚本按照如下的顺序进行搜索:脚本按照如下的顺序进行搜索:(1)当前目录;)当前目录;(2)$HOME/.matlab/current_release;(3)matlabroot/bin。关于关于Unix操作系统中的选项文件操作系统中的选项文件2023-5-5第三

    28、节第三节 编译编译2023-5-5 有关有关MATLAB编译器技术编译器技术 mcc命令详解命令详解 输入输出文件输入输出文件本节的内容包括:本节的内容包括:2023-5-5一、有关一、有关MATLAB编译器技术编译器技术 MATLAB编译器编译器 4.0使用使用MATLAB运行库(运行库(MCR),),MCR是一个使是一个使M文件能够执行的共享库的独立集合。使文件能够执行的共享库的独立集合。使用用MCR,可以在没有安装,可以在没有安装MATLAB软件的计算机上执行软件的计算机上执行MATLAB文件。文件。MCR提供了对提供了对MATLAB中几乎所有函数中几乎所有函数的支持。的支持。MCR使用

    29、了使用了线程封锁技术线程封锁技术,保证一次只能有一个线程允,保证一次只能有一个线程允许访问许访问MCR。1、MATLAB编译器运行库编译器运行库(MATLAB Compiler Runtime)2023-5-5 编译器编译器4.0使用了组件技术文件(使用了组件技术文件(CTF)来容纳可部署的程)来容纳可部署的程序包。所有的序包。所有的M文件都被加密到文件都被加密到CTF文档中,加密时使用文档中,加密时使用高级加密标准(高级加密标准(AES)密码系统,其对称密钥使用)密码系统,其对称密钥使用1024位位的的RSA来保护。来保护。MATLAB编译器所产生的每一个应用程序或共享库都有相编译器所产生的

    30、每一个应用程序或共享库都有相关联的关联的CTF文档。文档中包含所有与组件相关联的、基于文档。文档中包含所有与组件相关联的、基于MATLAB的内容(的内容(M文件、文件、MEX文件,等等)。当文件,等等)。当CTF档档案档案解压到用户的系统中时,这些文件仍保持加密状态。案档案解压到用户的系统中时,这些文件仍保持加密状态。2、组件技术文件、组件技术文件2023-5-5(1)依存关系检查)依存关系检查分析、判断用户提供的分析、判断用户提供的M文件、文件、MEX文件以及文件以及P文件所依存的函数之间文件所依存的函数之间的关系,并创建文件列表。该列表包括由输入的的关系,并创建文件列表。该列表包括由输入的

    31、M文件调用的所有文件调用的所有M文文件以及这些件以及这些M文件所调用的文件,等等。此外,还包括所有内置函数以文件所调用的文件,等等。此外,还包括所有内置函数以及及MATLAB对象。对象。(2)封装代码生成)封装代码生成产生创建目标组件所需要的所有源代码,包括:产生创建目标组件所需要的所有源代码,包括:应用于命令行的应用于命令行的M函数的函数的C/C+接口代码(接口代码(ex21_3_1_main.c)。对)。对于数据库和组件,该文件包括所有的接口函数。于数据库和组件,该文件包括所有的接口函数。组件数据文件,该文件包含运行时执行组件数据文件,该文件包含运行时执行M代码所需的信息。这些信息代码所需

    32、的信息。这些信息包括路径信息以及用于加载保存在组件的包括路径信息以及用于加载保存在组件的CTF文档中的文档中的M代码的密钥。代码的密钥。3、组件创建过程、组件创建过程2023-5-5(3)CTF文档创建文档创建 在依赖检查中创建的在依赖检查中创建的MATLAB文件(文件(M文件和文件和MEX文件)列文件)列表用于创建表用于创建CTF文档。文档。CTF文档包含组件正常执行所需要的文件。文档包含组件正常执行所需要的文件。这些文件被加密并压缩到单个文件中以方便部署,目录信息也包含这些文件被加密并压缩到单个文件中以方便部署,目录信息也包含在其中,以确保目录中的文件能被正确地安装到目标计算机。在其中,以

    33、确保目录中的文件能被正确地安装到目标计算机。(4)C/C+编译编译 将在将在“封装器代码生成封装器代码生成”中产生的中产生的C/C+文件编译为目标代码。文件编译为目标代码。用户在用户在mcc命令行中指定的命令行中指定的C/C+代码也同时被编译。代码也同时被编译。(5)连接)连接 将产生的目标文件和必需的将产生的目标文件和必需的MATLAB库文件相连接,并生库文件相连接,并生 成成最终的组件。最终的组件。C/C+编译和连接使用包含在编译和连接使用包含在MATLAB编译器产品中的编译器产品中的mbuild应用程序。应用程序。2023-5-5MATLAB编译器的编译过程编译器的编译过程2023-5-

    34、5二、二、mcc命令详解命令详解1、mcc命令的语法命令的语法mcc-options mfile1 mfile2.mfileN C/C+file1.C/C+fileN 其中,参数其中,参数options可以选择如下的值:可以选择如下的值:(1)-a 使用使用a filename来指定直接添加到来指定直接添加到CTF文档中的文件,也可以使用文档中的文件,也可以使用多个多个-a选项。选项。MATLAB编译器在编译器在MATLAB路径上查找这些文件,如果路径上查找这些文件,如果文件不在文件不在MATLAB路径上,需要指定文件的完整路径名称。路径上,需要指定文件的完整路径名称。如果如果-a选项中只包括

    35、目录的名称,则目录中的所有文件将循环添加选项中只包括目录的名称,则目录中的所有文件将循环添加到到CTF文档中。例如:将当前工作目录中的文档中。例如:将当前工作目录中的testdir目录及其子目录中目录及其子目录中的所有文件都添加到的所有文件都添加到CTF文档中,并且目录的子树也保存到文档中,并且目录的子树也保存到CTF文档文档中。中。2023-5-5mcc m hello.m a./testdir 如果在文件名中包含通配符(如果在文件名中包含通配符(*),),则只有在目录中符合给定格式的文则只有在目录中符合给定格式的文件被添加的件被添加的CTF文档中,而子目录中的文件却不会被添加。例如:文档中

    36、,而子目录中的文件却不会被添加。例如:mcc-m hello.m-a./testdir/*在本例中在本例中,在,在./testdir目录中的所有文件都会被添加到目录中的所有文件都会被添加到CTF文档中,而文档中,而在在./testdir目录下的所有子目录中的文件则不被添加。目录下的所有子目录中的文件则不被添加。mcc-m hello.m-a./testdir/*.m./testdir目录下所有扩展名为目录下所有扩展名为.m的文件都将被添加到的文件都将被添加到CTF文档档案中,文档档案中,而在而在./testdir目录下的所有子目录中的文件则不被添加。目录下的所有子目录中的文件则不被添加。202

    37、3-5-5其中,参数其中,参数options可以选择如下的值:可以选择如下的值:(1)-a 使用使用a filename来指定直接添加到来指定直接添加到CTF文档中的文件,也可以使用文档中的文件,也可以使用多个多个-a选项。选项。MATLAB编译器在编译器在MATLAB路径上查找这些文件,如果路径上查找这些文件,如果文件不在文件不在MATLAB路径上,需要指定文件的完整路径名称。路径上,需要指定文件的完整路径名称。如果如果-a选项中只包括目录的名称,则目录中的所有文件将循环添加选项中只包括目录的名称,则目录中的所有文件将循环添加到到CTF文档中。例如:将当前工作目录中的文档中。例如:将当前工作

    38、目录中的testdir目录及其子目录中目录及其子目录中的所有文件都添加到的所有文件都添加到CTF文档中,并且目录的子树也保存到文档中,并且目录的子树也保存到CTF文档文档中。中。2023-5-5(2)-b 产生与产生与Excel兼容的公式函数兼容的公式函数产生一个产生一个Visual Basic文件(文件(.bas),该文件包含一个用于编译器产生),该文件包含一个用于编译器产生的的COM对象的对象的Excel公式函数(公式函数(Microsoft Excel Formula Function)界)界面,允许面,允许MATLAB函数作为单元公式函数使用。函数作为单元公式函数使用。(3)-B 指定

    39、束(指定束(bundle)文件)文件使用指定文件的内容来替代在使用指定文件的内容来替代在mcc命令行中的文件。使用语法为:命令行中的文件。使用语法为:-B filename:,.,束文件束文件filename应只包含应只包含mcc命令行选项、相应的参数、和命令行选项、相应的参数、和/或其它文或其它文件名。束文件可以包含其它件名。束文件可以包含其它-B选项。选项。下表列出了下表列出了MATLAB编译器产品中的束文件列表。编译器产品中的束文件列表。束文件创建结果内容cpplibC+库-W cpplib:-T link:libcsharedlibC共享库-W lib:-T link:lib2023-

    40、5-5(4)-c(小写(小写C)只产生只产生C代码代码当使用宏选项时,只产生当使用宏选项时,只产生C封装代码,而不启动封装代码,而不启动mbuild而产生独立的应而产生独立的应用程序。该选项相当于放在用程序。该选项相当于放在mcc命令行的末尾的命令行的末尾的-T codegen。(5)-C(大写(大写C)默认情况下不嵌入默认情况下不嵌入CTF文档文档缺省情况下,指示缺省情况下,指示mcc不在不在C/C+文件、文件、main/Winmain共享库和独立的共享库和独立的二进制文件中嵌入二进制文件中嵌入CTF文档。文档。(6)-d 指定输出目录指定输出目录-d directory将编译产生的输出存放

    41、到由将编译产生的输出存放到由-d选项指定的目录选项指定的目录directory中。中。2023-5-5(7)-e 禁止禁止MS-DOS命令窗口命令窗口 当产生独立的应用程序时,禁止当产生独立的应用程序时,禁止MS-DOS命令窗口的出现,使用命令窗口的出现,使用-e来来替换替换-m选项。该选项仅用于选项。该选项仅用于Windows系统。使用系统。使用-R选项来产生错误日志文件:选项来产生错误日志文件:mcc-e-R-logfile,log_file.txt-v function_name该宏等价于:该宏等价于:-W Winmain-T link:exe 使用使用-e选项需要应用程序是使用微软的编

    42、译器(例如选项需要应用程序是使用微软的编译器(例如Microsoft Visual Studio Express)编译的,而不是使用编译的,而不是使用MABLAB自带的编译器编译的。自带的编译器编译的。(8)-f 指定的选项文件指定的选项文件-f filename 使用指定的选项文件覆盖默认的选项文件。该选项可使用户在调用不使用指定的选项文件覆盖默认的选项文件。该选项可使用户在调用不同的同的MATLAB编译器产品时使用不同的编译器产品时使用不同的ANSI编译器,该选项直接传递给编译器,该选项直接传递给mbuild脚本。脚本。MathWorks建议用户不使用该选项,而直接使用建议用户不使用该选项

    43、,而直接使用mbuild setup命令。命令。2023-5-5(9)-F 指定的项目文件。指定的项目文件。指定指定mcc使用包含在指定的项目文件(使用包含在指定的项目文件(.prj)中的设置。当调用)中的设置。当调用mcc时,时,使用使用-F project_name.prj用来指定项目文件的名称为用来指定项目文件的名称为project_name。该。该选项使得选项使得.prj文件及其所有附属的设置都返回给文件及其所有附属的设置都返回给mcc。使用。使用mcc或或deploytool创建的项目文件都可以用到该选项中。创建的项目文件都可以用到该选项中。(10)-g 产生调试信息产生调试信息包含

    44、由包含由MATLAB编译器产生的编译器产生的C/C+代码的调试信息,代码的调试信息,mbuild会将合会将合适的调试标志传递给适的调试标志传递给C/C+编译器。调试选项使得用户可以追溯在什么编译器。调试选项使得用户可以追溯在什么地方产生了错误:是在地方产生了错误:是在MCR的初始化、函数的调用还是终止例程中产的初始化、函数的调用还是终止例程中产生了错误。该选项不允许用户使用生了错误。该选项不允许用户使用C/C+调试器来调试用户的调试器来调试用户的M文件。文件。(11)-G 同同-g,仅用于调试,仅用于调试2023-5-5(12)-I 添加目录到引用路径中添加目录到引用路径中向引用目录列表中添加

    45、新的目录。每一个向引用目录列表中添加新的目录。每一个-I选项都会在搜索路径的列选项都会在搜索路径的列表的开头添加一个目录。例如:表的开头添加一个目录。例如:-I -I 设置搜索路径,从而设置搜索路径,从而directory1首先用于首先用于M文件的搜索,接下来是文件的搜索,接下来是directory2。该选项对于不能访问。该选项对于不能访问MATLAB路径的独立编译来说是很重要的。路径的独立编译来说是很重要的。(13)-l(小写(小写L)生成函数库生成函数库该选项为命令行中的每一个该选项为命令行中的每一个M文件生成一个库封装函数,并调用文件生成一个库封装函数,并调用C编编译器来创建共享库,该共

    46、享库导出这些函数。库的名字与组件的名字相同,也译器来创建共享库,该共享库导出这些函数。库的名字与组件的名字相同,也就是命令行上的第一个就是命令行上的第一个M文件的名字。该宏等价于:文件的名字。该宏等价于:-W lib:string link:lib(14)-m 产生一个独立的应用程序产生一个独立的应用程序该宏等价于:该宏等价于:-W main-T link:exe。使用使用-e选项代替选项代替-m选项来产生独立的应用程序,同时禁止选项来产生独立的应用程序,同时禁止MS-DOS命命令窗口的出现。使用令窗口的出现。使用-e选项需要应用程序是使用选项需要应用程序是使用Microsoft的编译器(例如

    47、的编译器(例如Microsoft Visual Studio Express)编译的。)编译的。2023-5-5(15)-M 定义编译时间选项定义编译时间选项 -M string 将将string直接传递给直接传递给mbuild脚本。这提供了一种定义编脚本。这提供了一种定义编译时间选项的有用机制,例如:译时间选项的有用机制,例如:”-Dmacro=value”。如果使用多个如果使用多个-M选项,只有最右边的一个起作用。选项,只有最右边的一个起作用。(16)-N 清除路径清除路径 有效清除最小目录集以外的路径,下列的核心目录及其子目录除外:有效清除最小目录集以外的路径,下列的核心目录及其子目录除

    48、外:matlabroot/toolbox/matlabmatlabroot/toolbox/localmatlabroot/toolbox/compiler/deploy 在在mcc命令行中包含命令行中包含-N选项,允许用户替换原始路径中的目录,选项,允许用户替换原始路径中的目录,同时保留引用目录的相对顺序。出现在原始路径中的引用目录中的所同时保留引用目录的相对顺序。出现在原始路径中的引用目录中的所有子目录也将被替换。此外,有子目录也将被替换。此外,-N选项保留用户已经引用、但不在选项保留用户已经引用、但不在matlabroot/toolbox路径下的所有目录。路径下的所有目录。2023-5-

    49、5(17)-o 指定输出文件名称指定输出文件名称 指定最终可执行文件的名称(仅用于独立的应用程序)。使用指定最终可执行文件的名称(仅用于独立的应用程序)。使用-o outputfile来命名来命名MATLAB编译器产生的最终可执行输出文件。在指定的名称后将添加编译器产生的最终可执行输出文件。在指定的名称后将添加合适的、与平台相关的扩展名(如合适的、与平台相关的扩展名(如.exe用于用于Windows独立应用程序)。独立应用程序)。(18)-p 向编译路径中添加目录向编译路径中添加目录 和选项和选项-N联合使用,可以添加联合使用,可以添加matlabroot/toolbox路径下指定的目录和子目

    50、路径下指定的目录和子目录到录到MATLAB编译路径下。编译路径下。-N-p directory 其中,其中,directory是要添加的目录。如果是要添加的目录。如果directory不是绝对路径,则假定它不是绝对路径,则假定它在当前工作目录下。以下规则定义了这些目录是如何在编译路径中引用的:在当前工作目录下。以下规则定义了这些目录是如何在编译路径中引用的:如果目录在原始如果目录在原始MATLAB路径上,则目录及其子目录都被添加到编译路径上,则目录及其子目录都被添加到编译路径下。路径下。如果目录不在原始如果目录不在原始MATLAB路径上,在该目录不会被添加到编译路径路径上,在该目录不会被添加到


    注意事项

    本文(《新编MATLAB&Simulink自学一本通》课件第21章 MATLAB程序编译.pptx)为本站会员(momomo)主动上传,其收益全归该用户,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!




    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库