2016-04-08 3 views
0

Я работаю с Qt5.4.1 и реализую сервер-клиентское приложение. В классе QTcpServer метод:Тип qintptr не найден в Qt5.4.1

void incomingConnection(int socketDescriptor); 

имеет целочисленный тип для socketDescriptor, но Qt5.5, этот метод изменился и имеет следующее заявление:

void incomingConnection (qintptr socketDescriptor); 

Проблема заключается в том, что мой компилятор не находит typedef qintptr. Сообщение об ошибке состоит в том, что qintptr не был объявлен.

Я добавил файл заголовка

#include <QtGlobal> 

но компилятор до сих пор не находит такого типа.

Когда я меняю qintptr на quintptr, компилятор находит его, но этот тип дает ошибку несоответствия типа. Как я могу решить эту проблему?

+1

Возможно, у вас более одной установки Qt? – danielfranca

+0

Можете ли вы воспроизвести ошибку в новом и маленьком проекте? – danielfranca

+0

@ danielfranca Когда я новый небольшой проект, e, g. пример foprtuneServer ошибка не создается, и небольшой проект компилируется и запускается без проблем –

ответ

0

Проблема в том, что проект был открыт в qt5, но все же имеет некоторые ссылки на старую версию qt (4.8.x). Поэтому он искал qtptr в пути /usr/include/QtCore/qglobal.h. Я изменил путь к /opt/Qt5.../QtCore/qglobal.h, и проблема решена.

+0

Где я могу это изменить? –

+0

@Alexander В QtCreator на левой панели вы можете найти значок «Проекты», щелкнуть по нему, а затем под Tab Build & Run вы можете найти кнопки буксировки «Build», «Run», над этими кнопками, у вас есть возможность изменить комплект на версию Qt5. x, которые поддерживают тип qintptr –

+0

Спасибо! @Waleed –