主要内容

限制

包装MATLAB和工具箱

MATLAB®编译器™金宝app支持完整的MATLAB语言和几乎所有基于MATLAB工具箱,除了:

  • 大部分的预构建的图形用户界面包含在MATLAB工具箱和它的伙伴。

  • 功能,不能直接从命令行调用。

编译应用程序只能运行在MATLAB运行的操作系统。然而,组件生成的MATLAB编译器不能用于MATLAB。而且,由于MATLAB运行时MATLAB大约是相同的大小,应用程序构建的MATLAB编译器需要特殊的存储内存和内存操作。最新的信息系统需求,去MathWorks网站

编译应用程序只能运行在同一平台开发,使用以下例外:

  • 可以部署到Web应用程序MATLAB™Web应用程序服务器在任何兼容的平台上运行。

  • 使用MATLAB c++库编译数据API,它不包含特定于平台的文件。

  • . net程序集编译使用。net核心,不包含特定于平台的文件。

  • Java®包不包含特定于平台的文件。

  • Python®包不包含特定于平台的文件。

的完整列表MATLAB编译器限制,访问://www.tatmou.com/下载188bet金宝搏products/compile金宝appr/compiler_support.html

请注意

对于一个不支持的功能列表金宝appMATLAB编译器看到功能不支持MATLAB编译器金宝app和MATLAB编译器编译的SDK

修复回调问题:缺失的功能

MATLAB编译器创造了一个独立的应用程序,它包MATLAB在命令行指定的文件。此外,它包括任何其他封装MATLAB文件调用MATLAB文件。MATLAB编译器使用依赖关系分析,确定所有提供的MATLAB的函数文件,mex files,档案。

请注意

如果MATLAB文件与档案相关不可用时,依赖分析不能发现档案依赖性。

依赖性分析不能找到一个函数如果唯一MATLAB文件中的函数调用下面的函数:

  • 回调弦

  • 字符数组作为参数传递函数宏指令函数或一个ODE求解器进行求解

    提示

    相关的函数也可以隐藏从依赖分析仪.mat文件被编译的应用程序加载。使用mcc -参数或% #函数编译指示标识.mat文件支持的类或函数金宝app负载命令。

MATLAB编译器不看看这些文本字符数组函数包的名字。

症状

你的应用程序运行,但一个交互式用户界面元素,如按钮,不工作。编译后的应用程序问题这个错误信息:

一个错误发生在回调:change_colormap错误消息了是:未知函数引用change_colormap在独立模式函数宏指令。

解决方案

有几种方法可以消除这个错误:

  • 使用% #函数编译指示并指定回调函数作为字符数组

  • 指定回调函数处理

  • 使用——一个选项

字符数组指定回调。创建一个列表的所有功能,只有在指定回调使用单独的字符数组,通过这些功能% #函数编译指示语句。这个覆盖产品依赖分析和指导它显式地包含中列出的功能% #函数语法。

例如,调用change_colormap在样例应用程序的函数my_test说明了这个问题。以确保MATLAB编译器处理change_colormapMATLAB文件列表的函数名% #函数编译指示。

函数my_test() %图形库调测试应用程序% # change_colormap山峰函数;p_btn = uicontrol (gcf,…“风格”,“按钮”,…“位置”,(10 133 25),……“弦”、“让黑色和白色的,…“回调”、“change_colormap”);

指定回调函数处理。指定的回调函数处理,使用相同的代码在上面的示例中,将最后一行替换为:

“回调”,@change_colormap);

更多信息在指定一个回调的价值,看到MATLAB编程基础文档。

使用- a选项。而不是使用% #函数编译指示,您可以指定失踪的MATLAB文件的名称MATLAB编译器命令行中使用——一个选择。

在一个找到缺失的功能MATLAB文件

发现功能在您的应用程序需要在上市% #函数编译指示,搜索你的MATLAB文件源代码文本指定为回调字符数组或作为参数函数宏指令,fminbnd,fminsearch,funm,fzero函数或任何解决的颂歌。

寻找文本作为回调字符数组,搜索字符“回调”或“fcn”您的MATLAB文件。这个搜索找到的所有回调属性定义的图形对象,如uicontroluimenu。此外,它发现的属性数据和斧头,在结束Fcn,如CloseRequestFcn,这也支持回调。金宝app

抑制警告的UNIX系统

几个警告可能出现当你在UNIX上运行一个独立的应用程序®系统。

抑制libjvm.so警告,为您的平台设置动态库路径正确。看到为部署设置MATLAB运行库路径

您还可以使用编译器选项- r -nojvm设置应用程序的nojvm运行时选项,如果没有Java应用程序能够运行。

不能使用图形-nojvm选项

如果您的程序使用图形和编译-nojvm选择,你会获得一个运行时错误。

不能创建输出文件

如果你收到此错误,有几种可能的原因考虑。

不能创建输出文件文件名

可能的原因包括:

  • 缺少文件夹的写权限MATLAB编译器试图写文件(最有可能的当前工作目录)。

  • 缺乏空闲磁盘空间文件夹MATLAB编译器试图写文件(最有可能的当前工作目录)。

  • 如果你创建一个独立的应用程序和测试它,可能是某个进程是否正在运行和阻碍MATLAB编译器与新版本覆盖它。

没有MATLAB文件帮助打包功能

如果您创建了一个MATLAB与自我记录的在线帮助文件和包,结果莫名其妙的下面的命令:

帮助文件名

请注意

由于性能的原因,MATLAB文件注释剥离MATLAB运行时加密。

没有MATLAB运行时版本控制上Mac OS X

功能,允许你安装多个版本的MATLAB运行时在同一台机器上不支持金宝appMac OS X。当你收到一个新版本的MATLAB,您必须重新编译和重新部署你的应用程序和组件。同样,当你安装新版本MATLAB运行时在目标机器上,您必须删除的旧版本MATLAB运行时在安装新的。你只能有一个版本的MATLAB运行时在目标机器上。

不能老神经网络部署MATLAB编译器

加载网络保存旧的深度学习工具箱™版本需要一些初始化例程不部署。因此,这些网络不能部署没有首先被更新。

例如,部署与深度学习工具箱v5.0.1 (2006 b)MATLAB编译器版本4.5 (R2006b)收益率以下错误在运行时:

? ? ?错误使用= = >网络。{1}subsasgn”层。initFcn initwb“不能设置为不存在的函数。错误= = = = > > 40岁updatenet错误网络。loadobj 10点? ? ?未定义的函数或方法的模拟输入参数类型的“结构”。错误= = > mynetworkapp 30

限制与多个参数调用PRINTDLG包装模式

在编译模式下,只能存在于一个参数调用MATLABprintdlg函数(例如,printdlg (gcf))。

你不能接收到一个错误时调用printdlg与多个参数。然而,当一个应用程序包含multiple-argument调用打包,行动失败,以下错误消息:

错误使用= = > printdlg printdlg 11点需要一个论点

包装一个函数与哪一个不搜索当前工作文件夹吗

使用哪一个,在这个例子中,不会引起当前工作部署的应用程序中搜索文件夹。此外,它可能会导致不可预知的行为的开放函数。

函数pathtestmyFile.mat打开('myFile.mat”)

使用下列解决方案作为一种替代方法之一:金宝搏官方网站

  • 使用松材线虫病函数显式地指出文件在当前文件夹,如下:

    ((pwd /开放myFile.mat'))

  • 而不是使用一般开放功能,使用负载或其他特殊功能为您的特定文件类型,负载显式地检查文件在当前文件夹。例如:

    负载myFile.mat

  • 包括你的文件您的应用程序运行所需的文件区域的编译器应用程序,AdditionalFiles选择使用compiler.build函数,或——一个标志使用世纪挑战集团

限制使用c++ SetData mwArray动态调整

你不能使用c++SetData方法动态地调整mwArray年代。

例如,如果您正在与下列数组:

(1 2 3 4)

你不能使用SetData数组的大小增加到5个元素的长度。

接受文件类型的包装

有效和无效的文件类型的包装使用部署应用程序如下:

目标应用程序 有效的文件类型 无效的文件类型

独立应用程序

MATLAB墨西哥人文件,MATLAB脚本,MATLAB函数和MATLAB类文件。这些文件必须有一个单一的入口点。

保护功能文件(每分钟文件),Java函数,COM或。net组件和数据文件。

库的编译器

MATLAB墨西哥人文件,MATLAB函数和MATLAB类文件。这些文件必须有一个单一的入口点。

MATLAB脚本,保护功能文件(每分钟文件),Java函数,COM或。net组件和数据文件。

MATLAB生产服务器

MATLAB墨西哥人文件和MATLAB函数。这些文件必须有一个单一的入口点。

MATLAB脚本,MATLAB类文件,保护功能文件(每分钟文件),Java函数,COM或。net组件和数据文件。MATLAB类文件可以依赖文件。

相关的话题