我有一個與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都有自己的這些值的內置集合。
描述添加所需的Qt版本?像這樣:'cd build && rm -r * && qmake .. && make'你也可以嘗試運行'make VERBOSE = 1'來查看究竟鏈接了什麼。 –
是的,我從零開始做所有事情。當用qmake V.3(Qt5)編譯時,Makefile根本沒有提到qt4,只有qt5。 我想我應該比較qmake和cmake的makefile,看看有什麼不同。 – wavelike
Vitallii,VERBOSE = 1讓我看起來更加困難,我想我找到了罪魁禍首,儘管我無法解釋整個行爲。我編輯了我的帖子。感謝您的幫助! – wavelike