LNK4098 - конфликт 'MSVCRT' с использованием GLFW
Я работаю над проектом с использованием OpenGL. Тем не менее, у меня есть предупреждение компоновщика "Resolving LNK4098: defaultlib 'MSVCRT' конфликтует с...", когда я строю свой проект.
Я много чего читал об этом предупреждении и узнал с помощью Dependency Walker, что мой GLEW использует MSVCRT.dll (думаю, так и должно быть, так как это "библиотека по умолчанию"). Однако, когда я проверяю GLFW3.DLL, он говорит, что использует MSVCR120.DLL, неправильную DLL, которая, как я подозреваю, вызывает конфликт в моем приложении.
Поэтому я пытаюсь собрать GLFW с нуля с исходным кодом с сайта. Я отредактировал следующие настройки в проекте:
- Расширение цели -> сначала я создаю.lib, затем.dll
- Набор инструментов платформы -> v120
- Тип конфигурации -> сначала я создаю.lib, затем.dll
А затем в C/C++ -> Генерация кода -> Библиотека времени выполнения я выбираю многопоточные DLL (/MD)
Перед компиляцией я ставлю все на "релиз".
Когда я перестраиваю все и проверяю это снова, он все еще говорит, что использует MSVCR120.dll, и это все еще вызывает хорошо известный конфликт LNK4098. Что я здесь не так делаю? Как я могу разрешить конфликт? Заранее спасибо!
1 ответ
Вам необходимо использовать один и тот же параметр "Библиотека времени выполнения" для библиотеки и вашего приложения.
Чтобы избежать проблем, вы должны подготовить две сборки библиотеки: одну для отладки и одну для выпуска.