2012-03-29 201 views
11

由於4.8.0不存在,我重新安裝了Qt,現在我也想用cmake。爲了使cmake工作,我記得不得不在Qt4.7.3中將PATCH添加到PATH中,所以我猜想現在會有類似的文件夾在QtSDK\Desktop\Qt\4.8.0中,但事實並非如此。我的問題是,其他人是否有設置Qt和cmake的經驗?我現在可以使用一些幫助,因爲我已經搜索了一下,並且找不到任何方法讓cmake工作。cmake找不到Qt4

當試圖建立,我得到這個衆所周知的消息:

CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:91 (MESSAGE): 
    Could NOT find Qt4 (missing: QT_QMAKE_EXECUTABLE QT_INCLUDE_DIR) 
Call Stack (most recent call first): 
    C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:252 (_FPHSA_FAILURE_MESSAGE) 
    C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindQt4.cmake:1171 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) 
    CMakeLists.txt:3 (find_package) 
+0

我很確定我所要做的只是確保我的QT_ROOT環境變量已設置(C:\ Qt \ 4.8.0 \在我的機器上)。 – tmpearce 2012-03-29 21:47:54

+0

@tmpearce:你的意思是在CMakeLists.txt中?如果沒有,請問如何添加? – Neko 2012-03-29 23:51:27

+0

我要走「c:\ ...」路徑來假設你在windows中。從右鍵點擊「我的電腦」上下文菜單,你可以找到自己的方式來「環境變量」。谷歌它,如果你需要更多的幫助,我沒有在家裏的Windows在這裏。一旦你在那裏,你可以創建一個新的環境變量(「PATH」通常是一個,作爲例子),如果你需要(我在我的第一評論中描述的那個)。 – tmpearce 2012-03-30 01:01:34

回答

4

所以,我發現了什麼問題,我想我應該知道之前。我只是將C:\QtSDK\Desktop\Qt\4.8.0\msvc2010\bin添加到我的PATH變量中。注意,在默認4.8.0安裝中,qmake位於C:\QtSDK\Desktop\Qt\4.8.0\msvc2010\bin而不是4.7.3中的C:\QtSDK\Desktop\Qt\4.7.3\mingw\bin。注意區別; msvc2010 vs mingw。這實際上非常明顯,因爲msvc2010是該目錄中唯一的文件夾。

我沒有嘗試skyhisi的答案,因爲它不再需要,但我猜測這是另一個正確的(如果不是更好)的方式來使cmake工作。

8

你只需要設置路徑QT_QMAKE_EXECUTABLE傳遞到qmake,然後cmake的可以使用qmake -query找到它所需要的所有其他路徑(類似於Linux上的pkg-config)。

步驟構建使用Qt和CMake的項目通常是:

  1. 退房/創建項目的源文件夾
  2. 創建build文件夾中的項目文件夾
  3. 開始Qt的命令提示符/ cmdcd外進入生成文件夾如cd build\project
  4. 運行cmake或cmake-gui將路徑傳遞到源文件夾例如cmake-gui ..\..\source\project
  5. 設置任何變量,如QT_QMAKE_EXECUTABLECMAKE_BUILD_TYPE
  6. 運行構建工具,或運行cmake --build .
+0

VTK指令表示使用標誌'-DQT_QMAKE_EXECUTABLE:PATH =/path/to/qmake',但這不適用於我。 – 2017-03-20 15:09:52

2

恰好碰到了同樣的問題......看看到findQt4.cmake

FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake qmake4 qmake-qt4 qmake-mac PATHS 
    "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\4.0.0;InstallDir]/bin" 
    "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\4.0.0;InstallDir]/bin" 
    "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\${qt_install_version};InstallDir]/bin" 
    $ENV{QTDIR}/bin 
    DOC "The qmake executable for the Qt installation to use") 

您可以ALTER註冊表項,或者,我個人比較喜歡全部刪除所有的按鍵,修改$ ENV {QTDIR }變量。祝你好運。

+0

非常感謝!我剛剛卸載了4.8.5-vs2010並安裝了4.8.5-mingw,安裝程序搞砸了一些東西。我追蹤了'findQt4.cmake'文件,但沒有找到問題。你的帖子指出我在HKCU的'Versions',我發現它是空的。事實證明,安裝程序以某種方式將該條目置於錯誤的帳戶下!我非常確定,我將安裝程序作爲「我自己」運行,而不是在第二臺桌面上運行。無論如何,我將「第二版」中的「版本」移到了我的目錄中,現在cmake正確地找到了Qt4。此外,值得注意的是,將密鑰放在全球HKLM不起作用。 – quetzalcoatl 2014-02-19 15:38:30

2

我有一個稍微不同的原因這個問題。也許這會幫助別人:

我卸載了Qt 4.8.3,然後安裝了qt 4.8.4。基於斯拉瓦的答案,我發現,CMake的越來越$(qt_install_version從值}:

[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\DefaultVersion] 

這仍設置爲4.8.3即使所有其他註冊表項被更新到4.8.4更改DefaultVersion鍵的值爲4.8.4解決了我的問題。

0

我有同樣的問題,我解決了提供給qmake的路徑,

QT_QMAKE_EXECUTABLE /opt/qt-4.8.7/bin/qmake 

在Mac,而二進制文件保存在/usr/local/Trolltech/Qt-4.8.7/bin 所需的qmake作爲QT_QMAKE_EXECUTABLE的價值需要的是,我的OS,存儲在路徑/opt/qt-4.8.7/bin/qmake中。希望這個幫助。