Конфликт связывания VC6
-
22-09-2019 - |
Вопрос
У меня есть старый проект С++, скомпилированный с помощью VC6.
Мне нужно статически связать новую библиотеку для реализации новой функциональности.
К сожалению, новая библиотека определяет символ (т.е._inflate), который уже определен в ранее связанной статической библиотеке.
Конечно, я не могу избавиться ни от одной библиотеки, и, конечно же, у меня нет доступа к исходному коду библиотеки.
Есть ли способ избежать ошибки компоновщика (LNK2005)?
Решение
Если вы знаете, что две версии _inflate идентичны или, по крайней мере, «совместимы», вы можете использовать /FORCE:Множественный вариант компоновщика чтобы заставить его игнорировать конфликты имен.
Конечно, если он каким-либо образом ссылается на «несовместимую» версию этого кода, это может привести к неопределенному поведению.