2016-04-08 12 views
0

Ich arbeite mit Qt5.4.1 und eine Server-Client-Anwendung zu implementieren. In der QTcpServer Klasse die Methode:Typ qintptr nicht in Qt5.4.1

void incomingConnection(int socketDescriptor); 

hat Integer-Typ für die socketDescriptor, aber für Qt5.5 hat sich diese Methode geändert und hat die folgende Erklärung ab:

void incomingConnection (qintptr socketDescriptor); 

Das Problem ist, dass mein Der Compiler findet den Typdef qintptr nicht. Die Fehlermeldung ist, dass qintptr nicht deklariert wurde.

Ich habe die Header-Datei

#include <QtGlobal> 

hinzugefügt, aber der Compiler noch nicht diese Art nicht finden.

Wenn ich die qintptr zu quintptr ändern, findet der Compiler es, aber dieser Typ gibt Typenkonfliktfehler. Wie kann ich dieses Problem lösen?

+1

vielleicht haben Sie mehr als eine Qt-Installation? – danielfranca

+0

Können Sie den Fehler in einem neuen und kleinen Projekt reproduzieren? – danielfranca

+0

@danielfranca Wenn ich neues kleines Projekt, e, g. Im foprtuneServer Beispiel wird der Fehler nicht erzeugt und das kleine Projekt kompiliert und läuft ohne Probleme –

Antwort

0

Das Problem ist, dass das Projekt in Qt5 geöffnet wurde, aber immer noch einige Verweise auf die alte Version von Qt (4.8.x) hat. Daher suchte es nach qtptr im Pfad /usr/include/QtCore/qglobal.h. Ich habe den Pfad zu /opt/Qt5.../QtCore/qglobal.h geändert und das Problem ist gelöst

+0

Wo kann ich das ändern? –

+0

@Alexander In QtCreator auf der linken Leiste finden Sie das Projects Icon, klicken Sie darauf, dann unter dem Tab Build & Run finden Sie Buttons Build, Run, über diesen Buttons haben Sie die Möglichkeit das Kit auf die Version Qt5 umzustellen. x, die den qintptr Typ unterstützen –

+0

Danke! @Walken –