【发布时间】:2012-08-12 21:29:37
【问题描述】:
我编译STLport后,在bin目录中得到了三个.dll:一个是release的(stlport.5.2.dll),一个是debug的(stlportd.5.2.dll和stlportstld.5.2.dll)。 dll)。我想知道为什么那里有两个调试 dll。谢谢!
【问题讨论】:
我编译STLport后,在bin目录中得到了三个.dll:一个是release的(stlport.5.2.dll),一个是debug的(stlportd.5.2.dll和stlportstld.5.2.dll)。 dll)。我想知道为什么那里有两个调试 dll。谢谢!
【问题讨论】:
stlportstld*.dll 代表Debug Mode of STLport:
调试模式可让您在使用 STL 迭代器和算法的应用程序代码中发现非常隐蔽的错误。
它执行迭代器有效性和所有权以及算法前提条件的运行时检查。 当调试检查发现错误时,它会终止程序并提供详细的诊断信息。
调试模式下的 STLport 与发布模式下一样是异常安全和线程安全的。
stlportd*.dll 是stlport*.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
【讨论】: