En esta página

Introducción a qmake

Este tutorial le enseña los conceptos básicos de qmake. Los demás temas de este manual contienen información más detallada sobre el uso de qmake.

Empezando con algo simple

Supongamos que acaba de terminar una implementación básica de su aplicación, y ha creado los siguientes archivos:

  • hola.cpp
  • hola.h
  • main.cpp

Encontrarás estos archivos en el directorio examples/qmake/tutorial de la distribución de Qt. La única otra cosa que sabes sobre la configuración de la aplicación es que está escrita en Qt. Primero, usando tu editor de texto plano favorito, crea un archivo llamado hello.pro en examples/qmake/tutorial. Lo primero que tienes que hacer es añadir las líneas que indican a qmake los archivos fuente y de cabecera que forman parte de tu proyecto de desarrollo.

Primero añadiremos los archivos fuente al archivo del proyecto. Para ello es necesario utilizar la variable SOURCES. Simplemente empieza una nueva línea con SOURCES += y pon hola.cpp después. Deberías tener algo como esto:

SOURCES += hello.cpp

Repetimos esto para cada archivo fuente en el proyecto, hasta que terminemos con lo siguiente:

SOURCES += hello.cpp
SOURCES += main.cpp

Si prefiere utilizar una sintaxis similar a la de Make, con todos los archivos listados de una sola vez, puede utilizar el escape de nueva línea de la siguiente manera:

SOURCES = hello.cpp \
          main.cpp

Ahora que los ficheros fuente están listados en el fichero de proyecto, hay que añadir los ficheros de cabecera. Estos se añaden exactamente de la misma manera que los archivos fuente, excepto que el nombre de la variable que utilizamos es HEADERS.

Una vez que haya hecho esto, su archivo de proyecto debe ser algo como esto:

HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

El nombre de destino se establece automáticamente. Es el mismo que el nombre del archivo del proyecto, pero con el sufijo apropiado para la plataforma. Por ejemplo, si el archivo del proyecto se llama hello.pro, el objetivo será hello.exe en Windows y hello en Unix. Si desea utilizar un nombre diferente, puede indicarlo en el archivo del proyecto:

TARGET = helloworld

El archivo de proyecto terminado debería tener este aspecto:

HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

Ahora puede utilizar qmake para generar un Makefile para su aplicación. En la línea de comandos, en el directorio de su proyecto, escriba lo siguiente:

qmake -o Makefile hello.pro

Nota: Si ha instalado Qt a través de un gestor de paquetes, el binario puede ser qmake6.

A continuación, escriba make o nmake en función del compilador que utilice.

Para los usuarios de Visual Studio, qmake también puede generar archivos de proyecto de Visual Studio. Por ejemplo

qmake -tp vc hello.pro

Cómo hacer que una aplicación sea depurable

La versión de lanzamiento de una aplicación no contiene símbolos de depuración ni otra información de depuración. Durante el desarrollo, es útil para producir una versión de depuración de la aplicación que tiene la información pertinente. Esto se consigue fácilmente añadiendo debug a la variable CONFIG en el fichero de proyecto.

Por ejemplo:

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

Utilice qmake como antes para generar un Makefile. Ahora obtendrá información útil sobre su aplicación cuando la ejecute en un entorno de depuración.

Añadir archivos fuente específicos de la plataforma

Después de unas horas de codificación, es posible que haya comenzado con la parte específica de la plataforma de su aplicación, y decidió mantener el código dependiente de la plataforma por separado. Así que ahora tienes dos nuevos archivos para incluir en tu archivo de proyecto: hellowin.cpp y hellounix.cpp. No podemos simplemente añadirlos a la variable SOURCES ya que eso colocaría ambos ficheros en el Makefile. Por lo tanto, lo que tenemos que hacer aquí es utilizar un ámbito que se procesará en función de la plataforma para la que estamos construyendo.

Un simple ámbito que añade el archivo dependiente de la plataforma para Windows se parece a esto:

win32 {
    SOURCES += hellowin.cpp
}

Cuando se construye para Windows, qmake añade hellowin.cpp a la lista de archivos fuente. Cuando se construye para cualquier otra plataforma, qmake simplemente lo ignora. Ahora todo lo que queda por hacer es crear un ámbito para el archivo específico de Unix.

Una vez hecho esto, el archivo del proyecto debería tener este aspecto:

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}

Utilice qmake como antes para generar un Makefile.

Detener qmake si un archivo no existe

Es posible que no desee crear un Makefile si un determinado archivo no existe. Podemos comprobar si un archivo existe utilizando la función exists(). Podemos detener el proceso de qmake utilizando la función error(). Esto funciona de la misma manera que los ámbitos. Basta con sustituir la condición de alcance con la función. Una comprobación para un archivo llamado main.cpp tiene este aspecto:

!exists( main.cpp ) {
    error( "No main.cpp file found" )
}

El símbolo ! se utiliza para negar la prueba. Es decir, exists( main.cpp ) es verdadero si el archivo existe, y !exists( main.cpp ) es verdadero si el archivo no existe.

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
    error( "No main.cpp file found" )
}

Usa qmake como antes para generar un makefile. Si renombra main.cpp temporalmente, verá el mensaje y qmake dejará de procesar.

Comprobación de más de una condición

Suponga que utiliza Windows y desea poder ver la salida de la sentencia con qDebug() cuando ejecute su aplicación en la línea de comandos. Para ver la salida, debes construir tu aplicación con la configuración de consola apropiada. Podemos fácilmente poner console en la línea CONFIG para incluir esta configuración en el Makefile en Windows. Sin embargo, digamos que sólo queremos añadir la línea CONFIG cuando estemos ejecutando en Windows y cuando debug ya esté en la línea CONFIG. Esto requiere el uso de dos ámbitos anidados. Primero crea un scope, luego crea el otro dentro de él. Ponga la configuración a procesar dentro del segundo ámbito, así:

win32 {
    debug {
        CONFIG += console
    }
}

Los ámbitos anidados pueden unirse utilizando dos puntos, de modo que el archivo de proyecto final tenga este aspecto:

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
    error( "No main.cpp file found" )
}
win32:debug {
    CONFIG += console
}

¡Ya está! Ahora ha completado el tutorial para qmake, y está listo para escribir archivos de proyecto para sus proyectos de desarrollo.

© 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.