Да, обычно рекомендуется иметь отдельные `.lib` файлы для отладки и выпуска.
Ошибки с неправильной версией библиотеки времени выполнения (runtime library) могут возникать, когда разработчик собирает программу с использованием одной версии библиотеки, а другая версия библиотеки находится на компьютере пользователя. Существует две основные версии библиотеки времени выполнения: отладочная (`Debug`) и релизная (`Release`). Эти версии различаются в ряде аспектов, включая способ работы с памятью и обработку ошибок.
Стандартно, компилятор Visual C++ будет использовать соответствующую версию библиотеки времени выполнения в зависимости от типа сборки (отладочная или релизная). Поэтому, если в вашем проекте используется отличная от ожидаемой версия библиотеки времени выполнения, это может привести к ошибкам.
SDL2 - это сторонняя библиотека, которая предоставляется разработчиками собственными `.lib` файлами для разных видов сборок (отладочной и релизной). Они выпускают обе версии библиотеки, чтобы избежать подобных проблем с неправильной версией библиотеки времени выполнения.
Поэтому, чтобы избежать ошибок с неправильной версией библиотеки времени выполнения, рекомендуется иметь отдельные `.lib` файлы для отладки и выпуска и использовать их соответственно в проекте.