Ошибка сцепления с унаследованным классом - PullRequest
1 голос
/ 18 мая 2010

У меня есть статическая библиотека и другая программа, которая ее использует.

В статической библиотеке. Если я определю заголовок без присмотра, он будет работать нормально.

class TcpCommunication

С другой стороны, если я использую неотъемлемость с классом QT,

class TcpCommunication:public QTcpServer

Я получаю сообщение об ошибке при компиляции кода, который использует эту статическую библиотеку.

>MStoDKAPId.lib(TcpCommunication.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall QTcpServer::~QTcpServer(void)" (__imp_??1QTcpServer@@UAE@XZ) referenced in function "public: virtual __thiscall TcpCommunication::~TcpCommunication(void)" (??1TcpCommunication@@UAE@XZ)

В чем может быть проблема? Спасибо.

Ответы [ 2 ]

4 голосов
/ 18 мая 2010

Вам необходимо добавить ссылку на библиотеку, которая содержит определение класса QTcpServer.

В вашей среде IDE должна быть возможность указать параметры ссылок, одним из которых будут имена библиотек, а другим - пути поиска библиотек. Обновите эти два, чтобы добавить путь / библиотеку инфраструктуры QT.

3 голосов
/ 18 мая 2010

Приложение, использующее вашу статическую библиотеку, также должно иметь ссылку на QT

...