matlab清空文件夹命令_Matlab发布独立运行的exe程序

bfd5eb00b6a216bdf85f0f0f5b23b80a.png

1、Matlab发布程序(Matlab 2017a为例)

1)deploytool调出Matlab Compiler,若发布exe程序則选择Application Complier

9f9bd168c9137ebcda96baa04dcf7afc.png
图1 Matlab Complier

2)这里Type只有Standalone Application可选,VS环境要在Matlab之后安装才会出现在编译选项中。Add main file中选择需要编译的主程序*.m文件,打包类型可选Runtime download from web 和 Runtime include in package两种,第一种优点是打包后的程序较小,但不包括所需的Matlab环境,若运行打包程序未发现所需环境时会从网上下载环境包。也可以从Matlab官网自行下载对应版本环境包(MATLAB Runtime - MATLAB Compiler)。

144e13d54586056736faf159124ac5b6.png

3)Files required for your application to run栏会自动列出主程序*.m关联的m文件。

4)选择Package打包程序。完成后生成三个文件夹,分别为安装程序包、安装后的文件夹及测试程序。可在后两个文件夹任一选择打包程序*.exe运行查看。

d980fb69b0c17227ae37212ce1ff213b.png

2、可能出现的问题:

若发现自己打包的程序无法运行,肯定出现了问题,可调cmd从控制台中运行程序,查看相应错误。

以下给出一个略微棘手的问题:

f2dab5610076957cc60bd6ddc6f02602.png
F:MatlabProjetionsSTKMatlabSatTrackfor_testing>The file
   'C:UsersDRitchieDocumentsMATLABstkPathdef.m'
   is not in the application's expanded CTF archive at
    'C:UsersDRitchieAppDataLocalTempDRitchiemcrCache9.2SatTra3'.
This is typically caused by calls to ADDPATH in your startup.m or matlabrc.m files. Please see the compiler documentation and use the ISDEPLOYED function to ensure ADDPATH commands are not executed by deployed applications.
The file
   'C:UsersDRitchieDocumentsMATLABstkPathdef.m'
   is not in the application's expanded CTF archive at
    'C:UsersDRitchieAppDataLocalTempDRitchiemcrCache9.2SatTra3'.
This is typically caused by calls to ADDPATH in your startup.m or matlabrc.m files. Please see the compiler documentation and use the ISDEPLOYED function to ensure ADDPATH commands are not executed by deployed applications.
现在无法访问以前可访问的文件 "C:UsersDRitchieDocumentsMATLABstkPathdef.m"。
出错 startup (line 50)
现在无法访问以前可访问的文件 "C:UsersDRitchieDocumentsMATLABstkPathdef.m"。

问题解决方法可从以下链接中找到。

https://www.mathworks.com/matlabcentral/answers/259268-standalone-error-accessible-file-is-now-inaccessible-and-mclfreestacktrace

原因为:此问题是由于Matlab运行环境中包含了starup.m或者matlabrc.m文件,其中有Addpath操作,当Matlab Compiler打包程序时,这些文件中的命令也会执行,而这些路径在已编译的独立应用程序中是无法识别的。因此出现了错误。

解决方法:

可用which查看对应startup.m或matlabrc.m文件。

>> which -all startup.m
C:ProgramDataAGISTK MATLABstartup.m

导致错误的原因是列出的文件中addpath或path命令前未加if(isdeployed) 命令。

解决措施:

1)在对应startup.m或matlabrc.m文件中addpath或path命令前加if(isdeployed) 命令。

2)在使用Matlab打包standalone application程序前将startup.m或matlabrc.m文件重命名即可,打包完后记得改回原来的文件名。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值