2016-08-09 91 views
0

我有以下設置(使用QT 5.6.1-1):qmake在哪裏查找pri文件?

qtbase/bin 
... 
qtbase/mkspecs 
... 
qtdeclarative/mkspecs 

當試圖建立qtquickcontrols我得到以下錯誤:

qmake 
make 
Some of the required modules (qtHaveModule(quick)) are not available. 
Skipped. 

我想這是因爲qmake時只找用於qtbase/mkspecs中的.pri文件。有沒有一個環境變量來設置mkspecs 搜索路徑?

我嘗試設置QMAKESPEC,QT_PLUGIN_PATH和INCLUDEPATH,但無法通過錯誤消息。

構建過程:

tar -xf qtbase-opensource-src-5.6.1.tar.xz && cd 
./configure -prefix=qtbase/prefix 
make 
make install 

tar -xf qtdeclarative-opensource-src-5.6.1.tar.xz && cd 
qmake PREFIX=qtdeclarative/prefix 
make install 

失敗,寫錯誤qtbase /前綴(它不是寫在建立用戶)

sed -i s#INSTALL_ROOT)/qtbase/prefix#INSTALL_ROOT)/qtdeclarative/prefix 
make install 

tar -xf qtquickcontrols-opensource-src-5.6.1.tar.xz && cd 
qmake PREFIX=qtquickcontrols/prefix 
make install 

失敗 一些所需要的模塊(qtHaveModule的(快))不可用。 跳過。

+0

通過獲取完整的源代碼和構建一切,您的生活將會變得更加簡單。那麼你不需要擔心任何事情,它只是起作用。您也不應該在源文件夾中構建。對於任何版本的Qt,至少有3個文件夾:源代碼,構建和安裝。 –

回答

0

如果你有一個正確的Qt安裝,這不會是一個問題。確保:

  1. 您已編譯所有模塊。

  2. 你還沒有移動你的Qt構建:它具有硬編碼路徑,一旦構建就不能移動。

你也應該更喜歡在自己的build文件夾中構建Qt,如果你還沒有做。

+0

我使用qmake構建了qtbase和qtdeclarative PREFIX =/absolute/path/to/dir && make install並且沒有移動它們。但是當構建qtdeclarative時,我有路徑$(INSTALL_ROOT)/ qtbase /前綴而不是$(INSTALL_ROOT)/ qtdeclarative /前綴。在運行make install之前,我用qtdeclarative/prefix替換了$(INSTALL_ROOT)/ qtbase /前綴。這可能是問題嗎?什麼是傳遞前綴的正確方法? – dvc

+0

你不應該做任何事情。在構建目錄中運行configure,並給出配置的安裝前綴(而不是通過env變量!)。然後建立你想要的模塊,然後安裝它們。你應該做一個並行構建來加速它,如果你直接執行'make install',這些構建失敗了,你應該'make -j && make -j install'。 –

+0

運行qmake不會生成./configure文件。並且在tarball中沒有一個https://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtdeclarative-opensource-src-5.6.1-1.tar.xz什麼是我錯過了? – dvc

相關問題