Ну, я получаю это предупреждение, когда связываю библиотеку, которая была скомпилирована с использованием набора символов Юникод, в то время как мой проект использует многобайтовую кодировку.
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) Перестройте все, используя одну и ту же спецификацию проекта, так что в вашем случае можно использовать многобайтовый или юникод
2) Оставьте все как есть, но позаботьтесь о данных, передаваемых через ваше приложение и библиотеку, которая использует разное время выполнения. Таким образом, вы не передаете в библиотеку ничего, что может быть неправильно обработано в зависимости от времени выполнения. В случае проблем с отладкой / выпуском это означает, например, что вы не освобождаете () или удаляете [] что-либо, что было выделено в библиотеке, и наоборот. То же самое в вашем случае, если библиотека ожидает, что какие-либо параметры являются unicode, вы должны предпринять шаги для обеспечения правильного строки для библиотечных функций.
Других решений пока нет …