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 ответ

Решение

Вам необходимо использовать один и тот же параметр "Библиотека времени выполнения" для библиотеки и вашего приложения.

Чтобы избежать проблем, вы должны подготовить две сборки библиотеки: одну для отладки и одну для выпуска.

Другие вопросы по тегам