В чем разница между stlportd.5.2.dll и stlportstld.5.2.dll?

После того, как я скомпилировал STLport, я получил три.dll в директории bin: один для выпуска (stlport.5.2.dll), а другие для отладки (stlportd.5.2.dll и stlportstld.5.2.dll). Мне было интересно, почему там есть две отладочные библиотеки. Спасибо!

1 ответ

Решение

stlportstld*.dll для режима отладки STLport:

Режим отладки позволяет находить очень неясные ошибки в коде приложения, в котором используются итераторы и алгоритмы STL.

Он выполняет проверку во время выполнения правильности и принадлежности итератора и предварительных условий алгоритма. Когда проверка отладки выявляет ошибку, она завершает программу с подробной диагностикой.

STLport в режиме отладки настолько же безопасен для исключений и потоков, что и в режиме выпуска.

stlportd*.dll это отладочная версия stlport*.dll, который не предоставляет дополнительных средств отладки, как stlportstld*.dll делает (хотя это также может быть "отлажено").

Вы также можете обратиться к stl\config\_auto_link.h в пакете STLport, чтобы увидеть разницу между двоичными файлами:

#  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
Другие вопросы по тегам