我正在尝试修复自定义内置Qt的安装。我正在使用this very similar question中的qt.conf
。但是,CMake 2.8.7仍然无法找到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版本。
我错过了什么?
答案 0 :(得分:1)
您应该将CMAKE_PREFIX_PATH
设置为B:/lib/vs10/Qt-4.8.1-VS10x64/bin
,而不是设置QT_QMAKE_EXECUTABLE
。它将帮助cmake找到所有qt可执行文件。
答案 1 :(得分:1)
问题在于他们决定将QT_BINARY_DIR
变为CACHE INTERNAL
变量,在更改qt.conf
并删除CMake中的QT_*
变量后,该变量未正确重置。仅当QT_BINARY_DIR
的路径发生更改时,才会重置qmake.exe
。清除缓存后,它工作正常。
我从中吸取的教训:不要使用CACHE INTERNAL
,只使用FORCE
和mark_as_advanced
。