2012-03-29 16 views
11

Como salió 4.8.0, reinstalé Qt y ahora también quiero usar cmake. Para hacer que cmake funcione, recuerdo haber tenido que agregar la carpeta mingw bin (QtSDK\Desktop\Qt\4.7.3) a PATH en Qt4.7.3, así que supuse que ahora habría una carpeta similar en QtSDK\Desktop\Qt\4.8.0, pero este no es el caso. Mi pregunta es, ¿alguien más tiene experiencia en configurar Qt y cmake? Podría usar algo de ayuda en este momento, ya que busqué en Google un poco y no pude encontrar ninguna forma de hacer que cmake funcione.cmake no encuentra Qt4

Cuando se trata de construir, me sale este mensaje conocido:

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

Estoy bastante seguro de que todo lo que tenía que hacer era asegurarme de que mi variable de entorno QT_ROOT estaba configurada (C: \ Qt \ 4.8.0 \ en mi máquina). – tmpearce

+0

@tmpearce: ¿En CMakeLists.txt te refieres? Si no, ¿podría agregar cómo hacer esto? – Neko

+0

Voy a salir de la ruta "c: \ ..." para asumir que estás en Windows. Desde el menú contextual del "clic derecho en" Mi PC ", puede encontrar el camino a" Variables de entorno ". Google si necesita más ayuda, no tengo Windows en casa aquí. Una vez que esté allí, puede crear una nueva Variable de entorno ("RUTA" suele ser una, como ejemplo) si es necesario (la que describí en mi primer comentario). – tmpearce

Respuesta

4

Así, descubrí lo que era el problema, y ​​creo que debería haber sabido antes. Simplemente agregué C:\QtSDK\Desktop\Qt\4.8.0\msvc2010\bin a mi variable PATH. Puede ser útil tener en cuenta que, en una instalación predeterminada 4.8.0, qmake se encuentra en C:\QtSDK\Desktop\Qt\4.8.0\msvc2010\bin en oposición a C:\QtSDK\Desktop\Qt\4.7.3\mingw\bin en 4.7.3. Observe la diferencia; msvc2010 contra mingw. En realidad es muy obvio, ya que msvc2010 era la única carpeta en ese directorio.

No intenté la respuesta de skyhisi porque ya no era necesaria, pero supongo que es otra forma correcta (si no mejor) de hacer que cmake funcione.

8

Sólo tiene que establecer la ruta a QMake en QT_QMAKE_EXECUTABLE, y luego cmake puede utilizar qmake -query encontrar todos los otros caminos que necesita (similar a pkg-config en Linux).

Pasos para la construcción de un proyecto usando Qt y CMake por lo general son:

  1. Salida/Crear carpeta fuente del proyecto
  2. Crear carpeta de compilación fuera de la carpeta del proyecto
  3. inicio Qt símbolo del sistema/cmd y cd en la carpeta de compilación por ejemplo cd build\project
  4. Ejecute cmake o cmake-gui pasando la ruta a la carpeta de origen, p. cmake-gui ..\..\source\project
  5. Establecer las variables, tales como QT_QMAKE_EXECUTABLE y CMAKE_BUILD_TYPE
  6. funcionar su herramienta de construcción o que son dirigidos cmake --build .
+0

Las instrucciones de VTK dicen que use la bandera '-DQT_QMAKE_EXECUTABLE: PATH =/ruta/a/qmake', pero esto no funciona para mí. –

2

acabo de encontrar con el mismo problema ... echar un vistazo a 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") 

Puede claves de registro alterar, o, yo personalmente prefiero borrar todas esas llaves en conjunto y modificar $ ENV {QTDIR } variable. Buena suerte.

+0

¡Muchas gracias! Acabo de desinstalar 4.8.5-vs2010 e instalé 4.8.5-mingw, y los instaladores arruinaron algo. Seguí el archivo 'findQt4.cmake', pero no encontré el problema. Tu publicación me indicó las 'Versiones' en HKCU, que encontré ... vacía. ¡Resultó que de alguna manera el instalador ha puesto la entrada en una cuenta incorrecta! Estoy seguro de que ejecuto el instalador como 'yo mismo', no en el segundo escritorio. De todos modos, moví las 'Versiones' de esa segunda cuenta a la mía, y ahora el cmake encuentra Qt4 correctamente. Además, es notable que poner las claves globalmente en HKLM no funciona. – quetzalcoatl

2

Tuve este problema por un motivo ligeramente diferente. Tal vez esto ayude a alguien más:

Desinstalé Qt 4.8.3 y luego instalé qt 4.8.4. Sobre la base de la respuesta de Slava descubrí que CMake es conseguir que el valor de $ (qt_install_version} a partir de:.

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

Esto todavía se establece en 4.8.3 a pesar de que todas las otras entradas del registro se actualizaron a 4.8.4 Cambio de la el valor de la clave DefaultVersion a 4.8.4 me solucionó el problema.

0

que tenían el mismo problema y lo resolvió proporcionando el camino a QMake,

QT_QMAKE_EXECUTABLE /opt/qt-4.8.7/bin/qmake 

En Mac, mientras que los binarios se guardan en /usr/local/Trolltech/Qt-4.8.7/bin el qmake requerido requeridos como valor de QT_QMAKE_EXECUTABLE es, para mi sistema operativo, almacenado en la ruta /opt/qt-4.8.7/bin/qmake. Espero que esta ayuda también.