Построение с VS2010, я создаю lib, который вызывает многие из этих ошибок ссылок:
error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2'
Результат в ситуации, когда я должен отправить как выпуск, так и отладочную версию моей библиотеки. У меня нет причин отправлять отладочную версию lib, и она просто раздувает бинарный дистрибутив. Но клиентский код, встроенный в debug, отказывается ссылаться на мою версию lib.
Я видел этот вопрос раньше, но они, похоже, не задают правильный вопрос. Я понимаю, что это за ошибка, и почему я получаю ее (ну, вроде, я точно не знаю, что испускает зависимость. У вас есть?), Но я хочу знать, как устранить эту зависимость от происходящего в моей lib?
Аналогично libs, которые жалуются, когда используются конфликтующие CRT, которые можно предотвратить с помощью /Zl (исключить имя библиотеки по умолчанию из объектных файлов), наверняка есть способ предотвратить эту зависимость от того, чтобы быть включенным в мои библиотеки тоже?
Я просто хочу создать единую оптимизированную библиотеку lib, которая может связываться с кодом отладки или выпуска. Это не важно для клиентского кода для отладки lib. Почти никакие сторонние библиотеки не поставляются с отличными версиями отладки и выпуска. Как разработчики избегают этой проблемы?
Кто-нибудь знает, что именно заставляет эту зависимость ссылок, и как мне ее полностью отключить или исключить из моего кода?