2009-11-23 6 views
1

저는 mex 라이브러리를 사용하는 간단한 프로젝트를 컴파일하기 위해 MATLAB의 배포 도구를 사용하고 있습니다. 실행 파일은 OK로 실행되고 끝내야 할 때 아무 일도 발생하지 않는다는 점을 제외하고는 수행해야 할 작업을 수행합니다. 그것은 단지 거기에 앉아있다.컴파일 된 MATLAB : 내 응용 프로그램이 왜 멈 춥니 까?

다른 프로젝트 (예 : 문서의 마법 사각형 예제)를 컴파일 할 때 제대로 작동합니다. 실행 파일이 완료되고 종료됩니다.

.m 파일의 끝에 disp('at end');을 추가했는데이 줄이 실제로 표시되어 .m 파일의 끝에 도달했음을 알았지 만 프로세스를 종료하지 않습니다.

왜 이런 일이 발생합니까?


편집 : 그것은 'at end' 후 반환, 일반적으로 실행 MATLAB에서

. 코드가 너무 길어 여기에 포함 할 수 없습니다. mex 라이브러리를 사용하는 것 외에는 보통의 일을합니다.

+0

MATLAB 내에서 실행하면 어떻게됩니까? – mtrw

+0

일부 샘플 코드를 포함 할 수 있습니까, 아니면 너무 길어질 수 있습니까? – gnovice

+0

그냥 mex 라이브러리를 사용하는 더미 애플리케이션을 컴파일하고 컴파일 할 수 있습니까? – mtrw

답변

4

이 질문에 지나는 많은 세부 아니지만, 여기에 두 가지 가능성이 있습니다 :

  1. 는 실행의 끝 부분에 보이는 그림 창 있습니다합니다. 컴파일 된 응용 프로그램은 모든 Figure 창이 종료되기 전에 종료 될 때까지 대기합니다. 함수 mclWaitForFiguresToDie에 대한 MATLAB Compiler 설명서를 참조하십시오.

  2. 은 어떻게 든 MEX 라이브러리 "라고합니다 (false)를 waitforcallbacks 때까지 종료에서 응용 프로그램을 방지 할 수 있습니다."할, 내장 함수를 waitforcallbacks를 호출 또한 waitforcallbacks에 대한 도움말에서 "waitforcallbacks 중첩 호출. waitforcallbacks (false)는 배포 된 응용 프로그램을 종료하기 위해 waitforcallbacks (true)가 호출 된 횟수만큼 호출해야합니다."

+0

입니다 수치, 감사합니다 – shoosh

관련 문제