предупреждение LNK4098: defaultlib ‘mfc110u.lib’ конфликтует с использованием других библиотек

Ну, я получаю это предупреждение, когда связываю библиотеку, которая была скомпилирована с использованием набора символов Юникод, в то время как мой проект использует многобайтовую кодировку.

1>LINK : warning LNK4098: defaultlib 'mfc110u.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
1>LINK : warning LNK4098: defaultlib 'mfcs110u.lib' conflicts with use of other libs; use /NODEFAULTLIB:library

(Обратите внимание, другие библиотеки, такие как msvcrt и т.д. не участвуют) Мой вопрос, как справиться с этой проблемой. Могу ли я просто проигнорировать это или я должен добавить / NODEFAULTLIB: lib (mfc110u.lib или mfc110.lib ???) в любом случае?

заранее спасибо

1

Решение

Есть несколько доступных опций (то же самое применяется для похожих предупреждений, смешивающих библиотеки отладки / выпуска).

1) Перестройте все, используя одну и ту же спецификацию проекта, так что в вашем случае можно использовать многобайтовый или юникод

2) Оставьте все как есть, но позаботьтесь о данных, передаваемых через ваше приложение и библиотеку, которая использует разное время выполнения. Таким образом, вы не передаете в библиотеку ничего, что может быть неправильно обработано в зависимости от времени выполнения. В случае проблем с отладкой / выпуском это означает, например, что вы не освобождаете () или удаляете [] что-либо, что было выделено в библиотеке, и наоборот. То же самое в вашем случае, если библиотека ожидает, что какие-либо параметры являются unicode, вы должны предпринять шаги для обеспечения правильного строки для библиотечных функций.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]