在我编译STLport之后,我在bin目录中获得了三个.dll:一个用于发布(stlport.5.2.dll),其他用于调试(stlportd.5.2.dll和stlportstld.5.2.dll)。我想知道为什么那里有两个调试 dll。谢谢!
stlportstld*.dll
用于STLport的调试模式:
调试模式允许您在使用 STL 迭代器和算法的应用程序代码中查找非常模糊的错误。
它执行迭代器有效性、所有权和算法前提条件的运行时检查。 当调试检查显示错误时,它会终止程序并进行详细的诊断。
调试模式下的 STLport 与发布模式下的异常安全和线程安全一样多。
stlportd*.dll
是stlport*.dll
的调试版本,它不像stlportstld*.dll
那样提供额外的调试工具(尽管它也可以"调试")。
您还可以参考 STLport 包中的stlconfig_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