| [ CnUnix ] in KIDS 글 쓴 이(By): parsec ( 먼 소 류 ) 날 짜 (Date): 2003년 6월 7일 토요일 오후 09시 20분 45초 제 목(Title): make 에서 에러 보기 질문 제목이 적당한지 모르겠지만... 윈도우 상에서 .bat 배치 화일 내에서 make(별도의 시그윈 디렉토리가 있고 path를 잡아서 make 유틸리티를 불러다 쓰는 구조)를 돌리고, makefile 안에서는 perl을 가지고 다른 makefile, 또는 다른 서브디렉토리로 잠수해서 perl 스크립트를 호출하면서 펄을 호출하는 makefile자신을 argument로 넘겨줍니다. 이 perl스크립트는 makefile을 분석해서 dependency 화일을 만들고, 또 컴파일 명령을 조립해서 system이라는 perl 명령으로 조립된 컴파일 명령을 실행하게 돼 있습니다. 문제는 이 복잡한 과정 속에서 중간에 preprocess 된 화일이 두 세 단계에 걸쳐 만들어지고 그것을 최종적으로 thumb cc나 arm cc로 컴파일하게 돼 있는데 중간 화일이 어느 단계에선가 안만들어집니다. 에러 메시지가 나오긴 하는 것 같은데 잠깐 커맨드창이 번개같이 나타났다 사라지 는데 이걸 붙잡아 놓을 수가 없다는 겁니다. 윈도우 커맨드창은 뭔가 실행하면서 메시지를 뿌리다가 마우스 왼족버튼을 클릭하거나 하면 실행이 멈췄다가 다시 오른쪽 버튼을 클릭하면 하던 일을 계속 하죠. 그런데 너무 빨리 창이 떴다 사라지기 때문에 메시지가 출력된 상태를 멈춰놓을 수가 없습니다. 메시지 하나 뜨고 바로 창이 닫혀버리기 때문에요. 몇 번 시도를 해봤지만 메시지가 뿌려지기 전의 빈 화면인채로는 잡히는데 메시지가 뿌려진 상태는 잡아 놓을 수가 없습니다. 상위의 makefile 커맨드 부분이나 이부분에서의 에러 메시지는 standard output에 뿌려지기 때문에 볼 수 있는데 펄의 system 명령으로 실행되는 컴파일 명령의 에러 메시지는 어떻게 해야 볼 수 있을까요? 그냥 system 명령의 매개변수 부분에 에러 출력 명령을 넣어야 할까요? 아니면 펄의 출력을 최 상위의 .bat화일을 부르는 쉘의 standard output으로 re- direct시키는 방법이 있을까요? /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ... May the source be with you! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ |