1

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

4

1 回答 1

2

stlportstld*.dll用于STLport 的调试模式

调试模式可让您在使用 STL 迭代器和算法的应用程序代码中发现非常隐蔽的错误。

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

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

stlportd*.dll是 的调试版本stlport*.dll,它没有提供额外的调试工具stlportstld*.dll(尽管它也可以“调试”)。

您也可以参考stl\config\_auto_link.hSTLport 包中的内容来查看二进制文件之间的区别:

#  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
于 2012-09-28T06:09:21.603 回答