2016-04-08 63 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 –