Pregunta

Acabo de empezar a usar Qt y se dio cuenta de que utiliza su propia herramienta de maquillaje , qmake .

  • ¿Por qué usar Qt su propia herramienta de maquillaje?
  • ¿Hay algo especial que le impide hacer uso de una herramienta estándar?
  • ¿El qmake llamar al GCC compilador de C ++?
¿Fue útil?

Solución

Qt utiliza qmake para apoyar de forma transparente diversos complementos de Qt, incluyendo "moc, el compilador meta-objeto" (que proporciona señales y slots), "UIC, el compilador ui" (que crea los ficheros de cabecera de los archivos de diseño .ui), "RCC, el compilador de recursos" (que recopila recursos).

No hay nada que le impida el uso de cualquier sistema de construcción que desee. Sin embargo, es mucho más trabajo. Por ejemplo, es necesario ejecutar "moc" sobre cada archivo de cabecera que contiene una clase que tiene señales o ranuras. En general no es recomendable, especialmente para alguien que está empezando a usar Qt.

QMake no llama g ++ / gcc directamente. En su lugar, crea archivos qmake make nativos en su plataforma actual. En Linux se crea estándar GNU make archivos, debajo de las ventanas que puede generar Visual Studio crea ficheros en virtud de Mac OS X que puede generar archivos de proyecto XCode. A continuación, invoca el sistema de compilación nativa (GNU hace, o MS nmake o xcodebuild o lo que sea), que llame a su compilador nativo (g ++ / gcc o lo que sea).

Otros consejos

En mi qmake opinnion es fresco para proyectos sencillos (que sólo puede QMake -project; qmake, hacer), pero horrible y no documentado lo suficiente para proyectos largish. Sobre todo la funcionalidad de configuración de qmake es una broma.

Los mejores sistemas de construcción que conozco son CMake y WAF (Python -Basado). En mis propias Qt-proyectos utilizo CMake para hacer el trabajo. Al igual que KDE-chicos:)

Para apoyar su sistema de señal / ranura Qt se basa en un preprocesador especial y compilador que genera objetos intermedios que hacen gran parte del procesamiento. Se refieren a esto como el Meta-Objeto del compilador o MOC .

Qt 5 Documentación: Usando el compilador Meta-Object para más detalles .

El MOC (junto con un par de otras herramientas intermedias) trabaja en conjunto con qmake; una herramienta de automatización de la construcción que produce Makefile en su formato nativo (VC ++, g ++, etc.) que se acumulan los archivos intermedios generados por el MOC, así como todos los archivos de origen en el ejecutable final.

qmake está diseñado para ser multiplataforma y flexible. Se puede compatible con Microsoft Visual Studio y Xcode.

Puede encontrar todo en la qmake Manual .

  

qmake genera un Makefile basado en   la información en un archivo de proyecto.   Los archivos de proyecto son creados por el   desarrollador, y suelen ser simples, pero   archivos de proyecto más sofisticados pueden   crearse para proyectos complejos. qmake   contiene características adicionales a   apoyar el desarrollo con Qt,   incluyendo construir automáticamente reglas   para moc y UIC. qmake también puede   generar proyectos de Microsoft Visual   estudio sin que el desarrollador   para cambiar el archivo de proyecto.

Para

a), ya que hace mucho detrás de las escenas para usted

b) sí, consulte a)

c) sí, lo hace la llamada g ++ (pero puede soportar otros compiladores, si los tiene)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top