STLport을 컴파일 한 후 bin 디렉터리에 3 개의 .dll을 얻었습니다. 하나는 릴리스 (stlport.5.2.dll) 용이고 다른 하나는 디버그 용입니다 (stlportd.5.2.dll 및 stlportstld.5.2.dll). 왜 거기에 두 개의 디버그 DLL이 있는지 궁금 해서요. 감사!stlportd.5.2.dll과 stlportstld.5.2.dll의 차이점은 무엇입니까?
1
A
답변
2
stlportstld*.dll
는 Debug Mode of STLport입니다 :
디버그 모드를 사용하면 STL 반복자와 알고리즘을 사용하여 응용 프로그램 코드에서 매우 모호한 버그를 발견 할 수 있습니다.
반복기 유효성과 소유권 및 알고리즘 전제 조건의 런타임 검사를 수행합니다. 디버그 검사가 버그를 드러내면 자세한 진단으로 프로그램을 종료합니다.
디버그 모드의 STLport는 릴리스 모드에서와 마찬가지로 예외 및 스레드로부터 안전합니다.
stlportd*.dll
stlportstld*.dll
로 추가 디버깅 기능을 제공하지 않습니다
stlport*.dll
의 디버그 버전입니다 않습니다 (또한 "디버깅"될 수 있지만).
# if defined (_STLP_DEBUG)
# define _STLP_LIB_OPTIM_MODE "stld"
# elif defined (_DEBUG)
# define _STLP_LIB_OPTIM_MODE "d"
# else
# define _STLP_LIB_OPTIM_MODE ""
# endif
:
또한 바이너리들 사이의 차이를 볼 수 된 STLport 패키지에 stl\config\_auto_link.h
를 참조 할 수 있습니다