2015-11-06 36 views
2

我有一個與cmake編譯的Qt5代碼,沒有問題。然後我決定嘗試qmake並遇到問題。我可以有正確的qmake,但錯誤的qt?

它看起來像qmake是以某種方式使用Qt4而不是Qt5,即使我認爲它被配置爲運行Qt5。該代碼包含一些嚴格的Qt5元素。 以下是我從終端獲得:

首先,我既有的Qt4和QT5:

[email protected]:~$ qtchooser -l 
4 
5 
default 
qt4-i386-linux-gnu 
qt4-x86_64-linux-gnu 
qt4 
qt5-x86_64-linux-gnu 
qt5 

顯示QMAKE版本:

[email protected]:~$ qmake -v 
QMake version 3.0 
Using Qt version 5.4.2 in /usr/lib/x86_64-linux-gnu 

我可以通過設置來回切換:

[email protected]:~$ export QT_SELECT=qt4 
[email protected]:~$ qmake -v 
QMake version 2.01a 
Using Qt version 4.8.6 in /usr/lib/x86_64-linux-gnu 

[email protected]:~$ export QT_SELECT=qt5 
[email protected]:~$ qmake -v 
QMake version 3.0 
Using Qt version 5.4.2 in /usr/lib/x86_64-linux-gnu 

但是,無論我使用qmake版本,我總是得到Qt4廁所k,與我用cmake得到的結果完全不同(看起來應該是這樣)。

我在做什麼,或者假設錯了?

感謝和抱歉,一個冗長的帖子。

編輯。

嗯,我有兩個Qt5庫源文件夾... cmake配置爲查看我安裝Qt5的地方 - /opt/Qt/5.5/gcc_64/include/ - 這很好。 但是後來我安裝了qmake和QCreator,突然間又有另一個qmake正在查找的地方 -/usr/include/x86_64-linux-gnu/qt5 /。

現在,爲什麼這是如此,爲什麼第二套Qt5庫作爲Qt4工作是超出我的。希望我可以重定向qmake並使其可用。

編輯2.看起來我運氣不好,回到cmake。來自Qt文檔:

QT_INSTALL_PREFIX - 這個qmake的Qt版本是建立在哪裏的。 這些內置屬性不能爲它們添加前綴,因爲它們沒有版本化,並且每個版本的qmake都有自己的這些值的內置集合。

+0

描述添加所需的Qt版本?像這樣:'cd build && rm -r * && qmake .. && make'你也可以嘗試運行'make VERBOSE = 1'來查看究竟鏈接了什麼。 –

+0

是的,我從零開始做所有事情。當用qmake V.3(Qt5)編譯時,Makefile根本沒有提到qt4,只有qt5。 我想我應該比較qmake和cmake的makefile,看看有什麼不同。 – wavelike

+0

Vitallii,VERBOSE = 1讓我看起來更加困難,我想我找到了罪魁禍首,儘管我無法解釋整個行爲。我編輯了我的帖子。感謝您的幫助! – wavelike

回答

0

要QtCreator建設Qmake工程時選擇特定的Qt版本,你需要爲你創建,當你重新QT_SELECT可變另一個構建樹QtCreator documentation

相關問題