2012-07-19 7 views
3

저는 MATLAB 프로젝트를 컴파일하기 위해 mcc를 사용하고 있습니다. 내가 사용하고있는 머신에는 많은 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"을 사용하여 프로젝트 설정으로 이동 한 다음 "toolbox on path"탭에서 필요하지 않은 모든 도구 상자의 선택을 취소하십시오.

screenshot

또한, 경로에서 모든 폴더를 삭제 만 핵심 MATLAB 것들을 유지 mcc 인수 -N있다.

-N 지우기 경로

효율적으로 (이 목록은 시간이 지남에 따라 변경 될 수 있습니다)에 다음과 같은 핵심 폴더를 제외한 모든 폴더의 경로를 지 웁니다 -N 합격 :

  • matlabroot/도구 상자를//
  • matlabroot/도구/로컬
  • matlabroot/도구/컴파일러 MATLAB에 배치

컴파일 타임에 MATLAB 경로에 나타나는 위 목록의 모든 하위 폴더도 유지됩니다. 명령 줄에 -N을 포함하면 을 포함하면 포함 된 폴더의 상대 순서가 인 채 원래 경로에서 폴더를 바꿀 수 있습니다. 원래 경로에 포함 된 포함 폴더의 모든 하위 폴더도 포함됩니다. 또한 -N 옵션은 사용자가 을 가지고있는 모든 폴더를 matlabroot/toolbox에없는 경로에 포함합니다.

+0

답안의 두 번째 부분은 내가 찾고있는 부분입니다. deploytool GUI를 사용할 수는 없지만 -N 옵션을 사용하면 mcc.enc 파일을 선택적으로 포함 할 수 있습니다. – knowah

+0

도구 상자 옵션은 이후 버전에서 사라졌습니다 : S – ntg

+1

@ntg : R2013b에서 GUI 부분이 변경되었지만 여전히 "MCC에 전달 된 추가 매개 변수"에 대한 deploytool 프로젝트의 설정 대화 상자에 필드가 있습니다. '; 여기서 위의 플래그'-N -p some_dir'을 사용하여 MCC 경로를 지우고 명시 적으로 고려할 도구 상자를 지정할 수 있습니다. – Amro

0

내가 Matlab의 중앙 파일 교환에서«FDEP»기능을 사용하는 것이 좋습니다 것입니다 : 당신이 사용하고있는 도구 상자를 말할 것이다

http://www.mathworks.com/matlabcentral/fileexchange/17291-fdep--a-pedestrian-function-dependencies-finder

이 기능은, 프로그램의 주요 기능에 적용을 그리고 사용중인 모든 함수 (재귀 적으로 모든 기본 함수가 나열되어 있으므로 어떤 함수도 놓치지 마십시오.) 최종 EXE의 크기와 컴파일 시간을 줄이면 정말 유용합니다.