Ссылка на библиотеку, которая ссылается на библиотеку, на которую я уже ссылаюсь

Прости запутанный заголовок.

Настройка для этой проблемы заключается в следующем:

У меня есть библиотека с открытым исходным кодом, которую я встроил в кучу.libs (VTK, если вам интересно)

У меня есть библиотека, которая использует вышеупомянутую статическую библиотеку. Давайте назовем это Lib A.

У меня также есть приложение, которое использует вышеупомянутую библиотеку (то есть VTK) И также использует Lib A.

Во время сборки я получаю сообщение об ошибке компоновщика, сообщающее, что функция, вызванная из Lib A, уже определена в библиотеке, которая связана с приложением (ошибка: LNK2005)

Любые идеи о том, как исправить это за исключением переключения все, чтобы быть динамически связаны?

1 ответ

Решение

Хорошо. Я понял, что я делаю не так.

Lib A использовала статически построенную версию VTK, в то время как основное приложение связывалось с динамически связанной версией VTK.

Таким образом, проблема была в том, что у меня были одинаковые функции, определенные в.lib и.dll, что приводило к сбою компоновщика.

Другие вопросы по тегам