stlportd.5.2.dll和stlportstld.5.2.dll的区别是什么?

时间:2012-08-16 13:54:31

标签: c++ stl stlport

编译STLport后,我在bin目录中获得了三个.dll:一个用于发布(stlport.5.2.dll),其他用于调试(stlportd.5.2.dll和stlportstld。 5.2.dll)。我想知道为什么那里有两个调试dll。谢谢!

1 个答案:

答案 0 :(得分:2)

stlportstld*.dll适用于Debug Mode of STLport

  

调试模式允许您在使用STL迭代器和算法的应用程序代码中找到非常模糊的错误。

     

它执行迭代器有效性和所有权以及算法前提条件的运行时检查。   当调试检查显示错误时,它会通过详细的诊断终止程序。

     

调试模式下的STLport与发布模式一样具有异常安全性和线程安全性。

stlportd*.dllstlport*.dll的调试版本,它不像stlportstld*.dll那样提供额外的调试工具(尽管它也可以“调试”)。

您还可以参考STLport包中的stl\config\_auto_link.h来查看二进制文件之间的区别:

#  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