¿Por qué usar Qt su propia herramienta de maquillaje, QMake?
-
21-09-2019 - |
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)