Pergunta

After I compiled STLport, I have obtained three .dll in the bin direcotry: one is for release (stlport.5.2.dll), and the others are for debug (stlportd.5.2.dll and stlportstld.5.2.dll). I was wondering why there are two debug dlls there. Thanks!

Foi útil?

Solução

stlportstld*.dll is for the Debug Mode of STLport:

Debug mode lets you find very obscure bugs in application code which uses STL iterators and algorithms.

It performs runtime checking of iterator validity and ownership and algorithm preconditions. When debug check reveals the bug, it terminates the program with detailed diagnostics.

STLport in debug mode is as much exception-safe and thread-safe as in release mode.

stlportd*.dll is the debug version of stlport*.dll, which doesn't provide additional debugging facilities as stlportstld*.dll does (although it also can be "debugged").

You can also refer to stl\config\_auto_link.h in the STLport package to see the difference among the binaries:

#  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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top