1

Простите свернутое название.Ссылка на библиотеку, которая ссылается на lib. Я уже ссылаюсь на

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

У меня есть исходный LIB открытый Я построил в кучу .libs (ВТК, если вы были любопытны)

У меня есть библиотека, которую использует вышеупомянутая статическая библиотека. Назовём его Lib А.

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

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

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

+1

Вы не можете исправить это: 1. Не связывайтесь с VTK в своем основном приложении. 2. Динамически ссылайтесь на VTK. 3. Не включайте VTK в Lib A – nos

+0

Итак, если я свяжу VTK с Lib A и свяжу Lib A с основным приложением, это сработает? –

+1

Да, если весь VTK включен в LibA. Хотя, похоже, вы используете MSVC, я не уверен, как надежно сделать это с помощью MSVC, возможно, с опцией/OPT: NOREF. – nos

ответ

0

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

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

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

Смежные вопросы