Так что это распространенная ошибка, но все посты говорят, что мне нужно уделять больше внимания тем версиям библиотек, которые я включаю. Я использую SDL2, OpenGL и SDL_Mixer … У меня нет никаких вариантов в том, что я включаю, кроме как придерживаться 32-битных библиотек.
Отладка компилируется нормально, но релиз дает мне ошибку LNK2005, если я не установил библиотеки времени выполнения на / MD. Я хотел бы избежать этой дополнительной зависимости. Получающийся исполняемый файл перестает отвечать на инициализации SDL или некоторые вызовы OpenGL, если Visual Studio не запускает сборку выпуска. Так что у меня возникла проблема с многопоточностью, но я не близок к ее пониманию. Маленькая помощь?
ОБНОВЛЕНИЕ: / FORCE: MULTIPLE позволяет компилировать проект с / MT. Но, как и в случае с / MD, исполняемый файл вылетает, если только Visual Studio не запустит сборку релиза. Что это значит?
ОБНОВЛЕНИЕ2: Используйте / MD в проектах SDL. Сбой был просто ошибкой памяти, отладчик не ловил. Связывание не было связано.
Хорошо, так что ваши единственные другие варианты, которые я вижу, это
(1) игнорирование Другой библиотека, которая вызывает ошибку LNK2005 (поскольку вы определяете что-то в двух местах, она не знает, какой использовать. Так как игнорирование libcmt.lib вызвало много проблем, возможно, попробуйте другое место, которое определяет метод).
2) Используйте / FORCE: MULTIPLE в параметрах командной строки вашего компоновщика, что позволит использовать несколько определений символа.
Является ли восстановление SDL вариантом? Если так