MALTAB用mcc生成exe文件后,运行时出现错误提示:未定义arx、aic函数(matlab自带的库函数)
2014-09-22 15:33
1216 查看
1 问题:MALTAB用mcc生成exe文件后,运行时出现错误提示:未定义arx、aic函数(matlab自带的库函数)。
2 描述:
3 个人分析:错误提示是未定义armax函数,而armax函数作为matlab本身库函数,在Matlab中可以直接使用。求问,如何在生成EXE文件的时候,把调用的函数库包含进去???
4 解决方法:之前在百度知道上面求助,没有办法。自己琢磨得到了一个笨方法:
5
扩展:(转)Matlab Compiler 的局限性
Matlab Compiler 的局限性:
不支持的m文件:
1、脚本m文件
2、使用了Object的m文件
3、调用了Matlab的Java接口
4、使用了input、eval操纵的工作空间变量
5、使用了带两个参数的exist函数
6、使用了动态命名的load,save函数
7、使用load,save载入文本文件
如果使用了libmatlb库以外的内置函数,编译也将失败。
条件语句中的persistent和global将不起作用。
下列函数在独立执行文件(Stand-Alone)中不被支持:
(Simulink 函数全部不支持)
add_block add_line applescript assignin callstats close_system
cputime dbclear dbcont dbdown dbquit dbstack dbstatus dbstep dbstop
dbtype dbup delete_block delete_line diary echo edterrorstat
errortrap evalin fields fschange functionscalled get_param
<
a88d
span style="font-family:'Microsoft YaHei', '微软雅黑', Arial, 'Lucida Grande', Tahoma, sans-serif;font-size:13px;line-height:24.0499992370605px;">hcreate help home hregister inferiorto inmem isglobal
isjava isruntime java javaArray javaMethod javaObject
keyboard linmod lookfor macprint mactools methods mislocked
mlock more munlock new_system open_system pack pfile rehash
runtime set_param sim simget simset sldebug str2func superiorto
system_dependent trmginput type vms what which who
whos
动态回调的问题
动态回调将不会被自动生成编译。
以上只是官方文档上的,以下情况可能也不能成功编译。
1、显式引用ans变量的
2、涉及稀疏矩阵的函数
3、调用无源文件的p文件
4、动态执行Simulink文件,就是model(...)
5、操作系统命令
6、似乎对工具箱的支持也不行
2 描述:
matlab中的预测函数,用到了arx、aic函数,在GUIDE中运行没有问题;MCC编译生成并使用EXE文件的时候,出现错误提示: Undefined function or method 'armax' for input arguments of type 'iddata'. %自己的预测函数形如: function [AIC] = TestArmax(data,orders) Data = iddata(data'); m = armax(Data,orders); AIC = aic(m); % 在Matlab中能正常运行,举例:data = [1,2,3,4,5,6,7,8,3,2,4,6,7,4,3,3,2,3,4,4]; orders = [1,1];m=armax(Data,orders) % 能正确输出
3 个人分析:错误提示是未定义armax函数,而armax函数作为matlab本身库函数,在Matlab中可以直接使用。求问,如何在生成EXE文件的时候,把调用的函数库包含进去???
生成的EXE文件已经和MCR运行环境在一个文件夹下了。MCR的环境变量也已经加到环境变量了。 问题解决了,用了比较笨的方法。MATLAB无法再编译后的运行环境下动态链接自己的库。所以需要把armax、aic函数对应的.m文件中的function函数,也copy到自己的.fig和.m文件中就可以了。
4 解决方法:之前在百度知道上面求助,没有办法。自己琢磨得到了一个笨方法:
MATLAB无法再编译后的运行环境下动态链接自己的库。所以需要把armax、aic函数对应的.m文件中的function函数,也copy到自己的.fig和.m文件中就可以了。
5
扩展:(转)Matlab Compiler 的局限性
Matlab Compiler 的局限性:
不支持的m文件:
1、脚本m文件
2、使用了Object的m文件
3、调用了Matlab的Java接口
4、使用了input、eval操纵的工作空间变量
5、使用了带两个参数的exist函数
6、使用了动态命名的load,save函数
7、使用load,save载入文本文件
如果使用了libmatlb库以外的内置函数,编译也将失败。
条件语句中的persistent和global将不起作用。
下列函数在独立执行文件(Stand-Alone)中不被支持:
(Simulink 函数全部不支持)
add_block add_line applescript assignin callstats close_system
cputime dbclear dbcont dbdown dbquit dbstack dbstatus dbstep dbstop
dbtype dbup delete_block delete_line diary echo edterrorstat
errortrap evalin fields fschange functionscalled get_param
<
a88d
span style="font-family:'Microsoft YaHei', '微软雅黑', Arial, 'Lucida Grande', Tahoma, sans-serif;font-size:13px;line-height:24.0499992370605px;">hcreate help home hregister inferiorto inmem isglobal
isjava isruntime java javaArray javaMethod javaObject
keyboard linmod lookfor macprint mactools methods mislocked
mlock more munlock new_system open_system pack pfile rehash
runtime set_param sim simget simset sldebug str2func superiorto
system_dependent trmginput type vms what which who
whos
动态回调的问题
动态回调将不会被自动生成编译。
以上只是官方文档上的,以下情况可能也不能成功编译。
1、显式引用ans变量的
2、涉及稀疏矩阵的函数
3、调用无源文件的p文件
4、动态执行Simulink文件,就是model(...)
5、操作系统命令
6、似乎对工具箱的支持也不行
相关文章推荐
- 运行matlab生成的exe文件是,出现“提示找不到mclmcrrt70.dll”的错误
- 建立工程后刚开始编译出现了“error PRJ0003 : 生成 cmd.exe 时出错”这样的错误,虽然在debug中生成了.exe文件,但是无法执行,提示找不到mfc90ud.dll。
- Problem: 程序运行时,出现错误提示 Debug Assertion Failed! Program: d:\Program\Prg.exe File: f:\rtm\vctools\vc7libs\ship\atlmfc\include\afxwin1.inl Line: 24
- exe4j 生成的文件无法运行。弹出错误提示要求安装java安装运行环境解决
- xcode8以上,CoreData生成对象文件运行出现文件编译错误
- 错误总结:C/C++运行时提示".exe已停止工作"? 调试时出现Program received signal SIGSEGV,Segmentation fault?引用无效内存一般是什么错误?
- 最近出现Matlab2010b点击matlab.exe运行时,不断提示Activate MathWorks Software,无法正常使用
- Matlab.R2014a编译生产的exe文件一直提示:错误使用videoinput
- python打包生成的exe文件运行时提示缺少模块
- pyinstaller打包生成软件运行时出现缺少模块cython_blas的错误(总结就是缺少依赖文件pyd,注意命名规则)
- VS2010 打包生成exe文件后 运行安装文件出现 TODO:<文件说明>已停止工作并已关闭
- vs2010生成的exe程序在运行时,提示计算机丢失mfc100d.dll文件
- 安装SQL Server 2000时出现以下错误提示:“以前的某个程序安装已在安装计算机创建挂起的文件操作,运行安装程序之前必须重新启动计算机” 说明:如果重启计算机无法解决问题,可能有以下两个原因
- 使用AJAX时出现“Microsoft JScript 运行时错误: 'Sys' 未定义”提示的解决方法
- 解决jdk环境变量设置完后,在cmd中运行javac出现’javac‘不是内部或外部命令,也不是可运行的程序或批处理文件的错误提示
- python打包生成的exe文件运行时提示缺少模块的解决方法
- 上传ipa出现的错误提示“application loader上传出错 生成的API分析文件太大”解决方法
- VS2010中程序编译生成都是正确的,直接生成的exe也是正确的,就是在VS中运行出现错误
- 生成的exe文件在别的电脑上运行出现缺少dll文件或一闪而过
- 解决jdk环境变量设置完后,在cmd中运行javac出现’javac‘不是内部或外部命令,也不是可运行的程序或批处理文件的错误提示