2013-05-06 63 views
4

我正在尋找一種方法來在.pro文件中強制特定版本的QT。更具體地說,我想強制qmake只使用QT 5.x版本與我的項目,而不是QT 4.x和QT 5.x在.pro文件中強制使用特定版本的QT

有沒有辦法做到這一點? PS:我不是要求停止/停止編譯過程的方法(也就是檢查QT版本,如果低於5.x只是拋出qFatal /等價物)。我正在尋找一種方式來實際選擇所使用的版本,同時與qmake

回答

4

產生Makefile我真的懷疑你能做到這一點。 qmake是框架的一部分,並與庫一起使用。當你說Qt of specific verion你的意思是隻有庫,但它是不正確的。

要使用特定版本的Qt,您需要運行不同版本的qmake。如果您正在使用QtCreator - 您應該在項目的選項中選擇它,如果不是的話 - 輸入文件qmake的絕對路徑。你可以找出Qt qmake使用哪個版本,你可以輸入qmake --version

+0

這就是我的想法,但我正在運行qmake-qt5,而且我還在使用qt4的Makefile! (我會在今天下午進行三重檢查,只是可以肯定的,但這是我昨天測試的最後一件事) – alexandernst 2013-05-06 11:03:34

+0

這很奇怪。試試這個:1.打開項目目錄中的終端。 2.運行'qmake-qt5 --version'確保您使用的是正確版本的Qt。 3.運行'qmake-qt5 && make clean && make' 4.轉到您的應用程序並檢查依賴項(linux中的'ldd'命令)。 – Amartel 2013-05-06 11:13:47

+0

http://pastebin.com/j2m5jLCM這裏有一個日誌,用於運行您詢問的內容。它通過qmake-qt5使用qt4。真奇怪。 – alexandernst 2013-05-06 16:30:11

1

由於Amartel在他的回答中寫道,你應該指向正確的qmake的版本(在控制檯輸入qmake --version檢查)

這可能是你的項目已使用了錯誤的qmake可執行文件和一些文件生成即使您發出nmake清潔或清潔,也不會被刪除。

檢查清理後源代碼樹中是否沒有Makefile(這些文件通常會包含要使用的qt版本的路徑,如果不正確重新生成將指向錯誤的Qt版本)。

5

如果用戶正在運行帶有您不希望他使用的版本的qmake,則可以拋出錯誤。例如:

lessThan(QT_MAJOR_VERSION, 5): error("requires Qt 5") 
相關問題