В чем разница между 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