2012-07-19 27 views
3

我正在使用mcc来编译我的MATLAB项目。我正在使用的机器上安装了许多MATLAB工具箱,但我的代码只需要一些(如distcomp和图像)。但是,无论何时运行mcc,它最终都会“处理”许多工具箱的mcc.enc文件,包括那些我的代码不需要的工具箱。MATLAB编译器从无关工具箱中处理mcc.enc

这里是mcc输出的开始(我使用-R '-nodisplay'来运行它,以便与我正在使用的集群兼容)。

Warning: No display specified. You will not be able to display graphics on the screen. 
Compiler version: 4.15 (R2011a) 
Processing /cm/shared/apps/matlab/7.12.0/toolbox/matlab/mcc.enc 
Processing /cm/shared/apps/matlab/7.12.0/toolbox/distcomp/mcc.enc 
Processing /cm/shared/apps/matlab/7.12.0/toolbox/images/mcc.enc 
Processing /cm/shared/apps/matlab/7.12.0/toolbox/stats/mcc.enc 
Processing /cm/shared/apps/matlab/7.12.0/toolbox/shared/imageslib/mcc.enc 
Processing /cm/shared/apps/matlab/7.12.0/toolbox/shared/system/mcc.enc 
Processing /cm/shared/apps/matlab/7.12.0/toolbox/shared/spcuilib/mcc.enc 
Processing /cm/shared/apps/matlab/7.12.0/toolbox/control/mcc.enc 
Processing /cm/shared/apps/matlab/7.12.0/toolbox/shared/controllib/engine/mcc.enc 
Processing /cm/shared/apps/matlab/7.12.0/toolbox/shared/controllib/general/mcc.enc 
Processing /cm/shared/apps/matlab/7.12.0/toolbox/signal/mcc.enc 
Processing /cm/shared/apps/matlab/7.12.0/toolbox/nnet/mcc.enc 

我注意到它在我的桌面上运行mcc时也做同样的事情。其中一些mcc.enc文件(特别是.../signal/mcc.enc和.../nnet/mcc.enc)需要更多时间来处理,而不是mcc的其余部分才能执行。有没有办法排除处理不需要的mcc.enc文件?

回答

4

使用MATLAB IDE中的“deplyment tool”,进入项目设置,从“路径上的工具箱”选项卡中,取消选择不需要的所有工具箱。

screenshot

此外,还有一个mcc说法-N扫清从路径的所有文件夹,并只保留核心MATLAB的。

-N清晰的路径

传-N有效地清除除了 以下核心文件夹中的所有文件夹的路径(该列表会随时间而改变):

  • matlabroot /工具箱/ matlab的
  • matlabroot /工具箱/本地
  • matlabroot /工具箱/编译/部署

它还保留了编译时在MATLAB路径上出现的上述列表的所有子文件夹。在命令行中包含-N允许您从原始路径中替换文件夹 ,同时保留包含文件夹的相对排序 。 的所有子文件夹也包含在原始路径中的文件夹中。 此外,-N选项保留路径中包含的所有不在matlabroot/toolbox下的用户具有的文件夹 。

+0

您的答案的第二部分是我正在寻找的。我无法使用deploytool GUI,但-N选项允许选择性包含mcc.enc文件。 – knowah 2012-07-23 17:17:21

+0

在更高版本中,工具箱选项似乎已消失:S – ntg 2014-02-19 16:49:39

+1

@ntg:R2013b中的GUI部件已更改,但''deploytool'项目的设置对话框中仍有一个字段用于'“传递给MCC的其他参数” ';这是您可以使用上述标志'-N -p some_dir'来清除MCC路径并明确指定要考虑的工具箱的位置。 – Amro 2014-02-20 10:00:59