限制
包装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_colormap
MATLAB文件列表的函数名% #函数
编译指示。
函数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文件。这个搜索找到的所有回调
属性定义的图形对象,如uicontrol
和uimenu
。此外,它发现的属性数据和斧头,在结束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类文件。这些文件必须有一个单一的入口点。 |
保护功能文件( |
库的编译器 |
MATLAB墨西哥人文件,MATLAB函数和MATLAB类文件。这些文件必须有一个单一的入口点。 |
MATLAB脚本,保护功能文件( |
MATLAB生产服务器 |
MATLAB墨西哥人文件和MATLAB函数。这些文件必须有一个单一的入口点。 |
MATLAB脚本,MATLAB类文件,保护功能文件( |