Статическая библиотека, которая связывает другую статическую библиотеку и qmake? Нечетная ошибка связи

У меня есть два файла qt .pro, оба с использованием lib TEMPLATE и staticlib CONFIG. Первая библиотека (давайте назовем ее 'core') является зависимостью для второй библиотеки (я назову ее 'foo'). Фактически, в foo есть класс, который расширяет класс в ядре, я назову этот класс Bar.

Когда я создаю экземпляр класса (который определен и реализован в foo, но расширяет класс (Bar) из ядра) в другом проекте (не в lib), я получаю следующую ошибку компоновки:

    /usr/bin/ld: Undefined symbols:
   Bar::Bar()

По сути, компоновщик не может найти класс в базовой библиотеке, который был получен из библиотеки foo, но ТОЛЬКО когда я создаю экземпляр класса в третьем проекте, который использует обе библиотеки. Ожидается ли такое поведение?

С уважением, Дэн О

Обновление: я исправил это, непосредственно вызывая конструктор Bars в третьем проекте перед использованием производного класса... Кто-нибудь знает, почему мне нужно это сделать?

1 ответ

Проблема в порядке. Это актуально для статических библиотек.

Измените порядок библиотек в строке LIBS.

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