티스토리 뷰


VC++에서 STL를 사용할 때 가장 난감한것은 컴파일 에러를 만났을 때다.
STL은 에러 메세지 자체가 해석이 힘들다.
그래서 STL error msg decryptor인 STLfilt을 찾아냈다.

작동원리는 VC는 CL.exe라는 컴파일러와 링커를 이용하는데
이것을 STLFilt의 CL.exe로 대체하고 기존의 원본인 CL.exe는 CL2.exe로 변경하게 되면
STLFilt가 컴파일러에서 오는 메세지를 해석해서 VC++의 output창에 디스플레이하는 것이다.
그래서 perl 스크립트 인터프리터가 필요하다.
간단히 말하면,
원본 cl.exe에서 보내는 문구를 perl 스크립트를 이용해서 해석한 후 vc++ output에 디스플레이.

- 환경구축
STLFilt 받기 : http://ww.bdsoft.com/tools/stlfilt.html
perl 스크립트 인터프리터 받기 : ActivePerl  http://ww.activestate.coml

- 설치하기
본인의 시스템 환경 : winXP, VC++ 6.0

1. ActivePerl를 시스템에 설치합니다.
2. STLFilt.zip을 특정 디렉토리에 풀어넣는다.
3. C:\program files\Microsoft Visual Studio\VC98\Bin의 원래 CL.exe를 백업하고 CL.exe를 CL2.exe로 rename한다.
4. STLFilt안의 CL.exe를 위의 경로에 복사한다.
5. STLFilt의 Procxy-CL.ini를 열어 환경변수를 설정한다.(아래 그림의 빨강rect 부분만 수정하면 된다.)
Procxy-cl.ini 화면
6. 이렇게 수정한 procxy-cl.ini를 C:\windows 밑에 복사합니다.
7. STLFilt 디렉토리에 가서 STLtask.exe를 실행합니다.
8. 아래 그림처럼 시스템 트레이에서 Enable filtering를 체크합니다.
사용자 삽입 이미지
9. 마지막으로 VC++를 실행해서 에러유발 STL코드를 작성한 후 메세지를 봅니다.
의심스러우면 Disable filtering한후 output 출력과 Enable한후 output출력을 비교합니다.





공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함