Статическая библиотека, которая связывает другую статическую библиотеку и 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.