Почему библиотека MSCVRT генерирует конфликты во время соединения?[дубликат]

StackOverflow https://stackoverflow.com/questions/2553397

Вопрос

На этот вопрос уже есть ответ здесь:

Я создаю проект на Visual C ++ 2008, который является примером приложения на основе MFC для статической библиотеки классов C ++, которую я скоро буду использовать в своем собственном проекте.При создании конфигурации отладки я получаю следующее:

предупреждение LNK4098:defaultlib 'MSVCRT' конфликтует с использованием других библиотек;используйте /NODEFAULTLIB:библиотека

После использования рекомендуемой опции (путем добавления "msvcrt" в поле "Игнорировать конкретную библиотеку" в настройках компоновщика проекта для конфигурации отладки) программа подключается и работает нормально.Однако я хотел бы выяснить, почему возник этот конфликт, почему я должен игнорировать критическую библиотеку, и следует ли мне ожидать проблем позже, если я добавлю игнорирование, или что произойдет, если я этого не сделаю (потому что программа все равно создается).

В то же время конфигурация выпуска предупреждает:

предупреждение LNK4075:игнорирование '/EDITANDCONTINUE' из-за спецификации '/OPT:ICF'
предупреждение LNK4098:defaultlib 'MSVCRTD' конфликтует с использованием других библиотек;используйте /NODEFAULTLIB:библиотека

Я предполагаю, что суффикс "D" означает, что это отладочная версия среды выполнения vc ++, понятия не имею, почему это используется на этот раз.В любом случае, добавление "msvcrtd" в поле игнорирования вызывает множество ошибок ссылки в форме:

ошибка LNK2001:неразрешенный внешний символ __imp___CrtDbgReportW

Любая информация очень ценится.

Это было полезно?

Решение

Обычно это происходит, когда вы связываетесь со статической библиотекой, которая использует другую версию среды выполнения VC ++ (C++ ->Code Generation->Runtime Library настройка в свойствах проекта).

Другие советы

Обычно это случалось со мной, когда я (непреднамеренно) смешивал разные варианты RTL, например (как это, кажется, в вашем случае) Debug и Release или MT и ST.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top