2013-10-08 150 views
2

我在嘗試修復自定義內置Qt的安裝。我正在使用從this very similar questionqt.conf。但是,CMake 2.8.7仍然無法找到moc,uic和rcc。用CMake查找Qt:缺少moc,uic,rcc

CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (MESSAGE): 
    Could NOT find Qt4 (missing: QT_MOC_EXECUTABLE QT_RCC_EXECUTABLE 
    QT_UIC_EXECUTABLE) (found suitable exact version "4.8.1") 

我已在QT_QMAKE_EXECUTABLE變量手動設置爲正確的值,即B:/lib/vs10/Qt-4.8.1-VS10x64/bin/qmake.exe。部署qt.conf文件後,qmake -v返回正確路徑:

c:\>B:/lib/vs10/Qt-4.8.1-VS10x64/bin/qmake.exe -v 
QMake version 2.01a 
Using Qt version 4.8.1 in B:/lib/vs10/Qt-4.8.1-VS10x64/lib 

qmake -query QT_INSTALL_PREFIX也返回正確的路徑。請注意,我不能使用環境變量,因爲我們需要不同的Qt版本用於不同的項目。

我錯過了什麼?

回答

1

您應該將CMAKE_PREFIX_PATH設置爲B:/lib/vs10/Qt-4.8.1-VS10x64/bin而不是設置QT_QMAKE_EXECUTABLE。它將幫助cmake找到所有的qt可執行文件。

1

的問題是,他們決定QT_BINARY_DIR一個CACHE INTERNAL變量,這是不改變qt.conf和CMake的刪除QT_*變量後正確復位。 QT_BINARY_DIR僅在qmake.exe的路徑更改時纔會重置。清除緩存後,它工作。

我從中吸取的教訓:請勿使用CACHE INTERNAL,只能使用FORCEmark_as_advanced