Configuración de qmake
Propiedades
qmake dispone de un sistema de configuración persistente, que permite establecer una propiedad en qmake una vez, y consultarla cada vez que se invoque qmake. Puede establecer una propiedad en qmake de la siguiente manera:
qmake -set PROPERTY VALUE
La propiedad apropiada y el valor deben ser sustituidos por PROPERTY y VALUE.
Puede recuperar esta información de qmake de la siguiente manera:
qmake -query PROPERTY qmake -query #queries all current PROPERTY/VALUE pairs
Nota: qmake -query enumera las propiedades incorporadas además de las propiedades que se establecen con qmake -set PROPERTY VALUE.
Esta información se guardará en un objeto QSettings (lo que significa que se almacenará en diferentes lugares para diferentes plataformas).
La siguiente lista resume las propiedades de built-in:
- QMAKE_SPEC: nombre abreviado del host
mkspecque se resuelve y almacena en la variable QMAKESPEC durante la compilación del host. - QMAKE_VERSION - la versión actual de qmake
- QMAKE_XSPEC - el nombre corto del destino
mkspecque se resuelve y almacena en la variable QMAKESPEC durante la compilación del destino. - QT_HOST_BINS - ubicación de los ejecutables del host
- QT_HOST_DATA - ubicación de los datos para los ejecutables usados por qmake
- QT_HOST_LIBS - ubicación de las bibliotecas del host
- QT_HOST_LIBEXECS - ubicación de los ejecutables requeridos por las librerías en tiempo de ejecución
- QT_HOST_PREFIX - prefijo por defecto para todas las rutas del host
- QT_INSTALL_ARCHDATA - ubicación de los datos generales de Qt dependientes de la arquitectura
- QT_INSTALL_BINS - ubicación de los binarios Qt (herramientas y aplicaciones)
- QT_INSTALL_CONFIGURATION - ubicación para la configuración de Qt. No aplicable en Windows
- QT_INSTALL_DATA - ubicación de los datos generales de Qt independientes de la arquitectura
- QT_INSTALL_DOCS - ubicación de la documentación
- QT_INSTALL_EXAMPLES - ubicación de los ejemplos
- QT_INSTALL_HEADERS - ubicación de todos los archivos de cabecera
- QT_INSTALL_LIBEXECS - ubicación de los ejecutables requeridos por las librerías en tiempo de ejecución
- QT_INSTALL_LIBS - ubicación de las librerías
- QT_INSTALL_PLUGINS - ubicación de los plugins de Qt
- QT_INSTALL_PREFIX - prefijo por defecto para todas las rutas
- QT_INSTALL_QML - ubicación de las extensiones QML 2.x
- QT_INSTALL_TESTS - ubicación de los casos de prueba de Qt
- QT_INSTALL_TRANSLATIONS - ubicación de la información de traducción para cadenas Qt
- QT_SYSROOT - el sysroot utilizado por el entorno de compilación de destino
- QT_VERSION - la versión de Qt. Le recomendamos que consulte los números de versión específicos de los módulos Qt utilizando las variables $$QT.<module>.version.
Por ejemplo, puede consultar la instalación de Qt para esta versión de qmake con la propiedad QT_INSTALL_PREFIX:
qmake -query "QT_INSTALL_PREFIX"
Puede consultar los valores de las propiedades en un archivo de proyecto de la siguiente manera:
QMAKE_VERS = $$[QMAKE_VERSION]
QMAKESPEC
qmake requiere un archivo de descripción de plataforma y compilador que contiene muchos valores por defecto utilizados para generar Makefiles apropiados. La distribución estándar de Qt viene con muchos de estos archivos, ubicados en el subdirectorio mkspecs de la instalación de Qt.
La variable de entorno QMAKESPEC puede contener cualquiera de los siguientes elementos:
- Una ruta completa a un directorio que contenga un archivo
qmake.conf. En este caso qmake abrirá el archivoqmake.confdesde dentro de ese directorio. Si el archivo no existe, qmake saldrá con un error. - El nombre de una combinación de plataforma y compilador. En este caso, qmake buscará en el directorio especificado por el subdirectorio
mkspecsde la ruta de datos especificada cuando se compiló Qt (ver QLibraryInfo::DataPath).
Nota: La ruta QMAKESPEC se añadirá automáticamente al Makefile generado después del contenido de la variable de sistema INCLUDEPATH.
Archivo caché
El archivo caché es un archivo especial que qmake lee para encontrar configuraciones no especificadas en el archivo qmake.conf, archivos de proyecto o en la línea de comandos. Cuando se ejecuta qmake, busca un archivo llamado .qmake.cache en los directorios padre del directorio actual, a menos que especifique -nocache. Si qmake no encuentra este archivo, ignorará silenciosamente este paso del proceso.
Si qmake encuentra un archivo .qmake.cache entonces procesará este archivo primero antes de procesar el archivo del proyecto.
Extensiones de archivos
En circunstancias normales qmake intentará utilizar las extensiones de archivo apropiadas para su plataforma. Sin embargo, a veces es necesario anular las opciones predeterminadas para cada plataforma y definir explícitamente las extensiones de archivo para qmake. Esto se consigue redefiniendo ciertas variables integradas. Por ejemplo, la extensión utilizada para los archivos moc se puede redefinir con la siguiente asignación en un archivo de proyecto:
QMAKE_EXT_MOC = .mymoc
Las siguientes variables se pueden utilizar para redefinir las extensiones de archivo comunes reconocidos por qmake:
- QMAKE_EXT_MOC modifica la extensión colocada en los archivos moc incluidos.
- QMAKE_EXT_UI modifica la extensión utilizada para Qt Widgets Designer UI files (normalmente en FORMS).
- QMAKE_EXT_PRL modifica la extensión de los ficheros de dependencias de librerías.
- QMAKE_EXT_LEX modifica el sufijo utilizado en los ficheros Lex (normalmente en LEXSOURCES).
- QMAKE_EXT_YACC modifica el sufijo utilizado en los ficheros Yacc (normalmente en YACCSOURCES).
- QMAKE_EXT_OBJ cambia el sufijo utilizado en los archivos objeto generados.
Todas las anteriores sólo aceptan el primer valor, por lo que debes asignarle un único valor que se utilizará en todo tu fichero de proyecto. Hay dos variables que aceptan una lista de valores:
- QMAKE_EXT_CPP hace que qmake interprete todos los archivos con estos sufijos como archivos fuente C++.
- QMAKE_EXT_H hace que qmake interprete todos los archivos con estos sufijos como archivos de cabecera C y C++.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.