Я проверял, что даже если в 2х разных lib'ах определены одинаковые символы(и они используются) — такой ошибки не возникает. Из какой библиотеки будет взята реализация символа — определяет порядок их подключения в настройках проекта.
Значит, это сообщение об ошибке вызывается как правило другими ошибками — я знаю следующие возможные причины:
1) Разные версии Run Time Library для реализации одного символа в разных lib'ах — приводит к проблеме выбора реализации, которыю линкер разрешить не может(вроде и не должен).
2) В разных .obj файлах есть реализации одного символа — следствие реализации функций и глобальных переменных в header'ах.
У меня есть проблема: некоторая программа предоставляет своё API в виде header'ов и lib'ов. Lib'ы предназначены для разных режимов использования и для разных версий Run Time Library, но во всех возможных комбинациях их использования
я получаю кучу вышеуказанных ошибок. В сети я нашел(на форуме) информацию по использованию API этой программы, где говорится, что нужно отключать некоторые стандартные библиотеки для использования этого API. Вопрос в том, как определить почему символ вызывает данную ошибку? И имеет ли смысл отключать стандартные библиотеки?
Мне очень нужно узнать — какие могут быть другие причины появления данной ошибки.
Не видя ситуации в живую, сложно что-то говорить определенно, но если предположить что эта библиотека не глючная, то надо просто отключать все стандартные либы которые вызывают ошибки. Вероятно они включены в эту библиотеку.
Здравствуйте, DrMom, Вы писали:
DM>Не видя ситуации в живую, сложно что-то говорить определенно, но если предположить что эта библиотека не глючная, то надо просто отключать все стандартные либы которые вызывают ошибки. Вероятно они включены в эту библиотеку.
Либа точно не глючная, но если я отключаю стандартные либы, которые там указаны вылезают ошибки о неопределенных символах "_CrtDbgReport", "__malloc_dbg", и прочих. Причем конфигурация Release, рантайм тоже не дебажный. Не пишется, где они были использованы...