2016-04-08 42 views
0

我正在使用Qt5.4.1,并实现服务器客户端应用程序。 在QTcpServer既可类中的方法:在Qt5.4.1中找不到类型qintptr

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)的引用。因此它正在寻找/usr/include/QtCore/qglobal.h路径中的qtptr。我已将路径更改为/opt/Qt5.../QtCore/qglobal.h并且问题已解决

+0

我可以在哪里更改? –

+0

@Alexander在左侧栏中的QtCreator中,您可以找到Projects图标,单击它,然后在Tab Build&Run下可以找到两个按钮Build,Run,在这些按钮上方,您可以将套件更改为Qt5版本。 x表示支持qintptr类型 –

+0

谢谢! @Waleed –