Я получил эту проблему в следующей ситуации:
Скажем
A - исполняемый проект (консоль fi), а B и C - проекты библиотеки (статическая библиотека) иA использует B, а B использует C.
Тогда
A должен знать библиотеку B и библиотеку C через файл .pro, а B должен знать библиотеку C через файл .pro.
Say
в библиотеке файлов A .pro обозначается перед библиотекой B:
LIBS *= -L"../C/debug"
LIBS *= -lC
INCLUDEPATH *= "../C"
LIBS *= -L"../B/debug"
LIBS *= -lB
INCLUDEPATH *= "../B"
Тогда
в точности соответствует описанной выше ошибке.
Решение:
Имя библиотеки B перед библиотекой C в файле .pro:
LIBS *= -L"../B/debug"
LIBS *= -lB
INCLUDEPATH *= "../B"
LIBS *= -L"../C/debug"
LIBS *= -lC
INCLUDEPATH *= "../C"