Прости запутанный заголовок.
Настройка для этой проблемы заключается в следующем:
У меня есть библиотека с открытым исходным кодом, которую я встроил в кучу .libs (VTK, если вам интересно)
У меня есть библиотека, которая использует вышеупомянутую статическую библиотеку. Давайте назовем это Lib A.
У меня также есть приложение, которое использует вышеупомянутую библиотеку (то есть VTK) И также использует Lib A.
Во время сборки я получаю ошибку компоновщика, сообщающую, что функция, вызванная из Lib A, уже определена в библиотеке, которая связана с приложением (ошибка: LNK2005)
Любые идеи о том, как исправить это короткое переключение все, чтобы быть динамически связаны?
Хорошо. Я понял, что я делаю не так.
Lib A использовала статически построенную версию VTK, в то время как основное приложение связывалось с динамически связанной версией VTK.
Таким образом, проблема была в том, что у меня были одинаковые функции, определенные в .lib и .dll, что приводило к сбою компоновщика.
Других решений пока нет …