Variables
El comportamiento fundamental de qmake está influenciado por las declaraciones de variables que definen el proceso de compilación de cada proyecto. Algunas de ellas declaran recursos, como cabeceras y archivos fuente, que son comunes a cada plataforma. Otros se utilizan para personalizar el comportamiento de los compiladores y enlazadores en plataformas específicas.
Las variables específicas de plataforma siguen el patrón de nomenclatura de las variables que amplían o modifican, pero incluyen el nombre de la plataforma correspondiente en su nombre. Por ejemplo, un makespec puede usar QMAKE_LIBS para especificar una lista de librerías con las que cada proyecto necesita enlazar, y QMAKE_LIBS_X11 se usaría para extender esta lista.
ANDROID_ABIS
Nota: Esta variable sólo se aplica a objetivos Android.
Especifica una lista de ABIs de objetivos Android. Los valores válidos son: armeabi-v7a, arm64-v8a, x86, x86_64.
Puede proporcionar las ABI como argumento de qmake:
qmake ANDROID_ABIS="armeabi-v7a arm64-v8a"
Nota: Es posible utilizar esta variable dentro del archivo *.pro, sin embargo, no se recomienda ya que anulará cualquier ABI especificado en la línea de comandos qmake.
ANDROID_API_VERSION
Nota: Esta variable sólo se aplica a objetivos Android.
Especifica el número de nivel de la API de Android. Para obtener más información, consulte Números de compilación de Android.
ANDROID_ARGUMENTOS_DE_APLICACIÓN
Nota: esta variable sólo se aplica a objetivos Android.
Especifica argumentos de línea de comandos adicionales para la aplicación Android utilizando AndroidManifest.xml con la etiqueta "android.app.arguments". Esto toma una cadena de argumentos:
ANDROID_APPLICATION_ARGUMENTS = "arg1 arg2 arg3"
ANDROID_BUNDLED_JAR_DEPENDENCIES
Nota: Esta variable sólo se aplica a los módulos de Android.
Es útil cuando se escribe un módulo Qt. Especifica una lista de dependencias pre-empaquetadas utilizadas por el módulo en un formato .jar, por ejemplo:
ANDROID_BUNDLED_JAR_DEPENDENCIES += jar/Qt6Android.jar
ANDROID_DEPLOYMENT_DEPENDENCIES
Nota: Esta variable sólo se aplica a objetivos Android.
Por defecto, androiddeployqt detectará las dependencias de su aplicación. Sin embargo, dado que no se puede detectar el uso de plugins en tiempo de ejecución, podría haber falsos positivos, ya que tu aplicación podría depender de cualquier plugin que sea una dependencia potencial. Si quieres minimizar el tamaño de tu APK, es posible anular la detección automática usando la variable this. Esta debe contener una lista de todos los archivos Qt que necesitan ser incluidos, con rutas relativas a la raíz de instalación de Qt.
Nota: Sólo se incluirán los archivos Qt especificados con esta variable. No incluir todos los archivos correctos puede provocar fallos. También es importante asegurarse de que los archivos están listados en el orden de carga correcto. Esta variable proporciona una manera de anular la detección automática por completo, por lo que si una biblioteca aparece antes de sus dependencias, no se cargará en algunos dispositivos.
ANDROID_DEPLOYMENT_SETTINGS_FILE
Nota: Esta variable sólo se aplica a objetivos Android.
Especifica la ruta al archivo android-deployment-settings.json necesario para androiddeployqt y androidtestrunner. Esto anula la ruta al archivo de configuración generado por qmake, por lo que debe asegurarse de proporcionar un archivo de configuración válido.
ANDROID_EXTRA_LIBS
Nota: Esta variable sólo se aplica a los objetivos Android.
Una lista de librerías externas que serán copiadas en la carpeta libs de tu aplicación y cargadas al inicio. Esto se puede utilizar, por ejemplo, para habilitar OpenSSL en su aplicación. Para más información, consulta Añadir soporte OpenSSL para Android.
Para incluir bibliotecas externas para múltiples ABIs, donde cada ABI tiene su propio directorio, utilice lo siguiente:
for (abi, ANDROID_ABIS): ANDROID_EXTRA_LIBS += $$PWD/$${abi}/library_name.soDe lo contrario, si la ABI se incluye en el nombre de la biblioteca, utilice lo siguiente:
for (abi, ANDROID_ABIS): ANDROID_EXTRA_LIBS += $$PWD/library_name_$${abi}.soANDROID_EXTRA_PLUGINS
Nota: Esta variable sólo se aplica a objetivos Android.
Especifica una ruta a plugins C++ o recursos que tu aplicación tiene que empaquetar pero que no pueden ser entregados a través del sistema de assets, como plugins QML. Con esta variable, androiddeployqt se asegurará de que todo está empaquetado y desplegado correctamente.
ANDROID_EXTRA_PLUGINS debe apuntar al directorio donde se construyen el plugin(s) extra. Además, la estructura del directorio de construcción debe seguir una convención de nomenclatura similar a la de los plugins Qt, es decir, plugins/<nombre del plugin>.
Las librerías de plugins deben tener el formato libplugins_<tipo>_<nombre>_<abi>.so. Para conseguirlo, el archivo plugin pro podría definirse de la siguiente manera:
TEMPLATE = lib CONFIG += plugin PLUGIN_TYPE = imageformats DESTDIR = $$top_builddir/plugins/myplugin TARGET = $$qt5LibraryTarget(myplugin, "plugins/$$PLUGIN_TYPE/")
con top_builddir definido en .qmake.conf como:
top_builddir=$$shadowed($$PWD)
Esto asegurará que el nombre correcto se aplica a la biblioteca de plugins(plugins/myplugin/libplugins_imageformats_myplugin_armeabi-v7a.so).
Entonces, asumiendo que un plugin extra de formato de imagen myplugin es construido como $$DESTDIR/plugins/myplugin/, lo siguiente asegura que es empaquetado correctamente:
ANDROID_EXTRA_PLUGINS += $$top_builddir/plugins
ANDROID_FEATURES
Nota: Esta variable sólo se aplica a módulos Android.
Especifica la lista de características de un módulo:
ANDROID_FEATURES += android.hardware.location.gps
Para obtener más información, consulte Android <uses-feature> Docs.
ANDROID_LIB_DEPENDENCIAS
Nota: Esta variable sólo se aplica a los módulos de Android.
Es útil cuando se escribe un módulo Qt. Especifica una lista de dependencias pre-construidas utilizadas por el módulo, por ejemplo:
ANDROID_LIB_DEPENDENCIES += \
plugins/libplugins_platforms_qtforandroid.soANDROID_MIN_SDK_VERSION
Nota: Esta variable sólo se aplica a objetivos Android.
Especifica el nivel mínimo de la API de Android para el proyecto. Por defecto, esta variable se establece en el nivel de API 23.
ANDROID_PACKAGE_SOURCE_DIR
Nota: Esta variable sólo se aplica a objetivos Android.
Especifica la ruta para una plantilla de paquete Android personalizada. La plantilla de paquete Android contiene
- Archivo AndroidManifest.xml
- archivo build.gradle y otros scripts Gradle
- archivo res/values/libs.xml
La ruta especificada por esta variable puede contener clases Java personalizadas bajo el directorio src. Por defecto, la herramienta androiddeployqt copia la plantilla de aplicación de la ruta de instalación de Qt para Android en el directorio de compilación de su proyecto, a continuación, copia el contenido de la ruta especificada por esta variable en la parte superior de la misma, sobrescribiendo los archivos existentes. Por ejemplo, puedes hacer un AndroidManifest.xml personalizado para tu aplicación, y colocarlo directamente en el directorio especificado por esta variable.
ANDROID_PERMISSIONS
Nota: Esta variable sólo se aplica a los módulos de Android.
Especifica la lista de permisos de un módulo:
ANDROID_PERMISSIONS += android.permission.ACCESS_FINE_LOCATION
Para obtener más información, consulte Android <uses-permission> Docs.
ANDROID_TARGET_SDK_VERSION
Nota: Esta variable sólo se aplica a los objetivos de Android.
Especifica el nivel de la API de Android de destino para el proyecto. Por defecto, esta variable se establece en el nivel de API 36.
ANDROID_VERSION_CODE
Nota: Esta variable sólo se aplica a objetivos Android.
Especifica el número de versión de la aplicación. Para más información, consulta Android App Versioning.
ANDROID_VERSION_NAME
Nota: esta variable sólo se aplica a destinos Android.
Especifica la versión de la aplicación en forma de cadena legible por humanos. Para obtener más información, consulte Android App Versioning.
CONFIG
Especifica la configuración del proyecto y las opciones del compilador. Los valores son reconocidos internamente por qmake y tienen un significado especial.
Nota: Los valores distinguen entre mayúsculas y minúsculas.
Los siguientes valores de CONFIG controlan las opciones del compilador y del enlazador:
| Opción | Descripción |
|---|---|
| release | El proyecto debe construirse en modo release. Si también se especifica debug, tendrá efecto la última. |
| depuración | El proyecto debe construirse en modo debug. |
| debug_y_release | El proyecto está preparado para ser construido tanto en modo debug como release. |
| debug_and_release_target | Esta opción está activada por defecto. Si debug_and_release también está activada, las construcciones debug y release terminan en directorios debug y release separados. |
| build_all | Si se especifica debug_and_release, el proyecto se construye por defecto tanto en modo debug como release. |
| autogen_precompile_source | Genera automáticamente un archivo .cpp que incluye el archivo de cabecera precompilado especificado en el archivo .pro. |
| ordenado | Cuando se utiliza la plantilla subdirs, esta opción especifica que los directorios enumerados deben procesarse en el orden en que se indican.Nota: Se desaconseja el uso de esta opción. Especifique las dependencias como se describe en la documentación de la variable SUBDIRS. |
| precompilar_cabecera | Permite el uso de cabeceras precompiladas en los proyectos. |
| precompile_header_c (sólo MSVC) | Permite el uso de cabeceras pre compiladas para archivos C. |
| warn_on | El compilador debe mostrar tantas advertencias como sea posible. Si también se especifica warn_off, tendrá efecto el último. |
| warn_off | El compilador debe mostrar el menor número posible de advertencias. |
| excepciones | Se activa el soporte de excepciones. Se establece por defecto. |
| exceptions_off | El soporte de excepciones está deshabilitado. |
| ltcg | La generación de código en tiempo de enlace está activada. Esta opción está desactivada por defecto. |
| rtti | El soporte RTTI está habilitado. Por defecto, se utiliza el valor por defecto del compilador. |
| rtti_off | El soporte RTTI está deshabilitado. Por defecto, se utiliza el valor predeterminado del compilador. |
| stl | El soporte STL está habilitado. Por defecto, se utiliza el valor predeterminado del compilador. |
| stl_off | El soporte STL está desactivado. Por defecto, se utiliza el valor predeterminado del compilador. |
| hilo | El soporte para threads está habilitado. Se habilita cuando CONFIG incluye qt, que es el valor predeterminado. |
| no_utf8_source | Especifica que los archivos fuente del proyecto no utilizan la codificación UTF-8. En su lugar, se utiliza la codificación por defecto del compilador. En su lugar, se utiliza la predeterminada del compilador. |
| hide_symbols | Establece la visibilidad por defecto de los símbolos en el binario como oculta. Por defecto, se utiliza la predeterminada del compilador. |
| c99 | Se habilita el soporte para C99. Esta opción no tiene efecto si el compilador no soporta C99, o no puede seleccionar el estándar C. Por defecto, se utiliza el compilador por defecto. |
| c11 | Se activa la compatibilidad con C11. Esta opción no tiene efecto si el compilador no soporta C11, o no puede seleccionar el estándar C. Por defecto, se utiliza el estándar del compilador. |
| c17 | Se activa la compatibilidad con C17, también conocido como C18. Esta opción no tiene efecto si el compilador no soporta C17, o no puede seleccionar el estándar C. Por defecto, se utiliza el estándar del compilador. |
| c18 | Este es un alias para el valor c17. |
| strict_c | Desactiva el soporte para las extensiones del compilador C. Por defecto, están habilitadas. |
| c++11 | Se habilita el soporte de C++11. Esta opción no tiene efecto si el compilador no soporta C++11, o no puede seleccionar el estándar C++. Por defecto, el soporte está habilitado. |
| c++14 | Se activa la compatibilidad con C++14. Esta opción no tiene efecto si el compilador no soporta C++14, o no puede seleccionar el estándar C++. Por defecto, el soporte está habilitado. |
| c++17 | Se activa la compatibilidad con C++17. Esta opción no tiene efecto si el compilador no soporta C++17, o no puede seleccionar el estándar C++. Por defecto, el soporte está habilitado. |
| c++1z | Alias obsoleto para c++17. |
| c++20 | Se activa la compatibilidad con C++20. Esta opción no tiene efecto si el compilador no soporta C++20, o no puede seleccionar el estándar C++. Por defecto, el soporte está deshabilitado. |
| c++2a | Alias obsoleto para c++20. |
| c++latest | Se habilita la compatibilidad con el último estándar del lenguaje C++. Esta opción es útil sobre todo para MSVC que soporta un argumento de compilador /std:c++latest. Para otras cadenas de herramientas, esta opción habilita el último estándar C++ conocido por Qt. Por defecto, esta opción está desactivada. |
| strict_c++ | Desactiva el soporte para las extensiones del compilador C++. Por defecto, están habilitadas. |
| depend_includepath | Permite añadir el valor de INCLUDEPATH a DEPENDPATH. Activado por defecto. |
| lrelease | Ejecuta lrelease para todos los archivos listados en TRANSLATIONS y EXTRA_TRANSLATIONS. Si embed_translations no está configurado, instala los archivos .qm generados en QM_FILES_INSTALL_PATH. Utilice QMAKE_LRELEASE_FLAGS para añadir opciones a la llamada lrelease. No está configurado por defecto. |
| incrustar_traducciones | Incrusta las traducciones generadas desde lrelease en el ejecutable, bajo QM_FILES_RESOURCE_PREFIX. Requiere que lrelease también esté configurado. No está configurado por defecto. |
| crear_libtool | Crea un archivo libtool .la para la biblioteca actualmente construida. |
| create_pc | Crea un archivo pkg-config .pc para la biblioteca construida actualmente. |
| no_batch | Sólo NMake: Desactiva la generación de reglas por lotes o reglas de inferencia de NMake. |
| skip_target_version_ext | Suprimir el número de versión automático añadido al nombre del archivo DLL en Windows. |
| suprimir_advertencias_vcproj | Suprimir las advertencias del generador de proyectos VS. |
| windeployqt | Invocar automáticamente windeployqt después de la vinculación, y añadir la salida como elementos de despliegue. |
| dont_recurse | Suprimir la recursión qmake para el subproyecto actual. |
| no_include_pwd | No añadir el directorio actual a INCLUDEPATHS. |
| compilar_fuentes_incluidas | Por defecto, qmake no compila los archivos fuente que están incluidos en otros archivos fuente. Esta opción desactiva este comportamiento. |
Cuando se utiliza la opción debug_and_release (que es la predeterminada en Windows), el proyecto se procesará tres veces: una vez para producir un Makefile "meta", y dos veces más para producir un Makefile.Debug y un Makefile.Release.
Durante las últimas pasadas, build_pass y las respectivas opciones debug o release se añaden a CONFIG. Esto hace posible realizar tareas específicas de compilación. Por ejemplo:
build_pass:CONFIG(debug, debug|release) {
unix: TARGET = $$join(TARGET,,,_debug)
else: TARGET = $$join(TARGET,,,d)
}Como alternativa a escribir manualmente condicionales de tipo build, algunas variables ofrecen variantes específicas de build, por ejemplo QMAKE_LFLAGS_RELEASE además de la general QMAKE_LFLAGS. Estas deben usarse cuando estén disponibles.
El meta Makefile hace invocables las subconstrucciones a través de los objetivos debug y release, y una construcción combinada a través del objetivo all. Cuando se utiliza la opción build_all CONFIG , la construcción combinada es la predeterminada. De lo contrario, la última opción CONFIG especificada del conjunto (debug, release) determina el valor predeterminado. En este caso, puede invocar explícitamente el objetivo all para compilar ambas configuraciones a la vez:
make all
Nota: Los detalles son ligeramente diferentes cuando se producen proyectos de Visual Studio y Xcode.
Al vincular una biblioteca, qmake se basa en la plataforma subyacente para saber con qué otras bibliotecas se vincula esta biblioteca. Sin embargo, si se enlaza estáticamente, qmake no obtendrá esta información a menos que utilicemos las siguientes opciones de CONFIG:
| Opción | Descripción |
|---|---|
| crear_prl | Esta opción permite a qmake rastrear estas dependencias. Cuando esta opción está activada, qmake creará un archivo con la extensión .prl que guardará meta-información sobre la biblioteca (ver Dependencias de Bibliotecas para más información). |
| link_prl | Cuando esta opción está habilitada, qmake procesará todas las bibliotecas enlazadas por la aplicación y encontrará su meta-información (ver Dependencias de Bibliotecas para más información). |
| no_install_prl | Esta opción deshabilita la generación de reglas de instalación para los archivos .prl generados. |
Nota: La opción create_prl es necesaria cuando se construye una biblioteca estática, mientras que link_prl es necesaria cuando se utiliza una biblioteca estática.
Las siguientes opciones definen el tipo de aplicación o biblioteca:
| Opción | Descripción |
|---|---|
| qt | El objetivo es una aplicación o biblioteca Qt y requiere la biblioteca Qt y los archivos de cabecera. Las rutas de inclusión y de biblioteca adecuadas para la biblioteca Qt se añadirán automáticamente al proyecto. Esta opción está definida por defecto y puede ajustarse con la variable QT. |
| x11 | El objetivo es una aplicación o biblioteca X11. Se añadirán automáticamente al proyecto las rutas de inclusión y las bibliotecas adecuadas. |
| testcase | El objetivo es una prueba automatizada. Se añadirá un objetivo de comprobación al Makefile generado para ejecutar la prueba. Sólo es relevante cuando se generan Makefiles. |
| insignificant_test | Se ignorará el código de salida de la prueba automatizada. Sólo relevante si testcase también está configurado. |
| ventanas | El objetivo es una aplicación de ventana Win32 (sólo app). Se añadirán automáticamente al proyecto las rutas de inclusión, las banderas del compilador y las bibliotecas adecuadas. |
| consola | El objetivo es una aplicación de consola Win32 (sólo app). Las rutas de inclusión, las banderas del compilador y las bibliotecas adecuadas se añadirán automáticamente al proyecto. Considere el uso de la opción cmdline para aplicaciones multiplataforma. |
| cmdline | El objetivo es una aplicación de línea de comandos multiplataforma. En Windows, esto implica CONFIG += console. En macOS, esto implica CONFIG -= app_bundle. |
| compartido | El objetivo es un objeto compartido/DLL. Las rutas de inclusión, las banderas del compilador y las bibliotecas se añadirán automáticamente al proyecto. Tenga en cuenta que dll también se puede utilizar en todas las plataformas; se creará un archivo de biblioteca compartida con el sufijo apropiado para la plataforma de destino (.dll o .so). |
| dll | |
| static | El objetivo es una biblioteca estática (sólo lib). Los indicadores de compilador adecuados se añadirán automáticamente al proyecto. |
| staticlib | |
| plugin | El objetivo es un plugin (sólo lib). Esto también habilita dll. |
| diseñador | El objetivo es un plugin para Qt Widgets Designer. |
| no_lflags_merge | Garantiza que la lista de bibliotecas almacenada en la variable LIBS no se reduzca a una lista de valores únicos antes de ser utilizada. |
| metatipos | Crea un archivo <name>_metatypes.json para el proyecto actual. <name> es el nombre base en minúsculas de TARGET. |
| qmltypes | Registra automáticamente los tipos QML definidos en C++. Para obtener más información, consulte Definición de tipos QML desde C++. Además, crea un archivo <template>.qmltypes para el proyecto actual. <template> será plugins (plural, por razones históricas) si plugin está configurado, o el valor de TEMPLATE en caso contrario. qmltypes implica metatypes. |
Estas opciones definen características específicas sólo en Windows:
| Opción | Descripción |
|---|---|
| plano | Cuando se utiliza la plantilla vcapp esto pondrá todos los archivos fuente en el grupo fuente y los archivos de cabecera en el grupo cabecera independientemente del directorio en el que residan. Si se desactiva esta opción, los archivos se agruparán dentro del grupo fuente/cabecera dependiendo del directorio en el que residan. Esta opción está activada por defecto. |
| incrustar_manifiesto_dll | Incrusta un archivo de manifiesto en la DLL creada como parte de un proyecto de biblioteca. |
| embed_manifest_exe | Incrusta un archivo de manifiesto en el EXE creado como parte de un proyecto de aplicación. |
Consulte Notas de la plataforma para obtener más información sobre las opciones para incrustar archivos de manifiesto.
Las siguientes opciones sólo tienen efecto en macOS:
| Opción | Descripción |
|---|---|
| app_bundle | Coloca el ejecutable en un paquete (por defecto). |
| lib_bundle | Coloca la biblioteca en un paquete de bibliotecas. |
| plugin_bundle | Pone el plugin en un paquete de plugins. Este valor no está soportado por el generador de proyectos Xcode. |
El contenido de la variable QMAKE_BUNDLE_DATA también influye en el proceso de compilación de paquetes.
Las siguientes opciones sólo tienen efecto en plataformas Linux/Unix:
| Opción | Descripción |
|---|---|
| archivo grande | Incluye soporte para archivos grandes. |
| separar_info_depuración | Pone la información de depuración de las bibliotecas en archivos separados. |
La variable CONFIG también se comprobará al resolver ámbitos. Puedes asignar cualquier cosa a esta variable.
Por ejemplo:
CONFIG += console newstuff
...
newstuff {
SOURCES += new.cpp
HEADERS += new.h
}DEFINE
qmake añade los valores de esta variable como macros de preprocesador del compilador C (opción -D).
Por ejemplo:
DEFINES += USE_MY_STUFF
DEFINES_DEBUG
Especifica las definiciones del preprocesador para la configuración de depuración. Los valores de esta variable se añaden a DEFINES después de cargar el proyecto. Esta variable se establece normalmente en qmake.conf y rara vez necesita ser modificada.
Esta variable fue introducida en Qt 5.13.2.
DEFINES_RELEASE
Especifica las definiciones del preprocesador para la configuración de la versión. Los valores de esta variable se añaden a DEFINES después de cargar el proyecto. Esta variable se establece normalmente en qmake.conf y rara vez necesita ser modificada.
Nota: Para MSVC mkspecs, esta variable contiene el valor NDEBUG por defecto.
Esta variable se introdujo en Qt 5.13.2.
ARCHIVO_DEF
Nota: Esta variable sólo se utiliza en Windows cuando se usa la plantilla app.
Especifica un archivo .def a incluir en el proyecto.
DEPENDPATH
Especifica una lista de directorios para qmake para escanear, para resolver las dependencias. Esta variable se utiliza cuando qmake rastrea los archivos de cabecera que #include en su código fuente.
DESTDIR
Especifica dónde colocar el archivo de destino.
Por ejemplo:
DESTDIR = ../../lib
Nota: La lista de caracteres soportados puede depender de la herramienta de compilación utilizada. En particular, los paréntesis no funcionan con make.
DISTFILES
Especifica una lista de archivos que se incluirán en el objetivo dist. Esta función sólo es compatible con las especificaciones de UnixMake.
Por ejemplo
DISTFILES += ../program.txt
DLLDESTDIR
Nota: Esta variable sólo se aplica a objetivos Windows.
Especifica dónde copiar la dll de destino.
EXTRA_TRADUCCIONES
Especifica una lista de archivos de traducción (.ts) que contienen traducciones del texto de la interfaz de usuario a idiomas no nativos.
A diferencia de TRANSLATIONS, los archivos de traducción en EXTRA_TRANSLATIONS sólo serán procesados por lrelease, no por lupdate.
Puedes usar CONFIG += lrelease para compilar automáticamente los archivos durante la compilación, y CONFIG += lrelease embed_translations para hacerlos disponibles en el Sistema de Recursos Qt.
Ver el ManualQt Linguist para más información sobre internacionalización (i18n) y localización (l10n) con Qt.
FICHEROS
Especifica los archivos UI (ver Qt Widgets Designer Manual) a ser procesados por uic antes de compilar. Todas las dependencias, cabeceras y archivos fuente necesarios para compilar estos archivos UI se añadirán automáticamente al proyecto.
Por ejemplo
FORMS = mydialog.ui \
mywidget.ui \
myconfig.uiGUID
Especifica el GUID que se establece dentro de un archivo .vcproj. El GUID suele determinarse aleatoriamente. Sin embargo, si necesita un GUID fijo, puede establecerlo utilizando esta variable.
Esta variable sólo es específica de los archivos .vcproj; de lo contrario, se ignora.
CABECERAS
Define los archivos de cabecera para el proyecto.
qmake detecta automáticamente si moc es requerido por las clases de las cabeceras, y añade las dependencias y archivos apropiados al proyecto para generar y enlazar los archivos moc.
Por ejemplo:
HEADERS = myclass.h \
login.h \
mainwindow.hVer también SOURCES.
ICONO
Esta variable se utiliza sólo en Mac OS para establecer el icono de la aplicación. Consulte la documentación sobre el icono de la aplicación para obtener más información.
IDLSOURCES
Esta variable se utiliza sólo en Windows para que la generación de proyectos de Visual Studio coloque los archivos especificados en la carpeta Generated Files.
INCLUDEPATH
Especifica los directorios #include en los que se debe buscar al compilar el proyecto.
Por ejemplo:
INCLUDEPATH = c:/msdev/include d:/stl/include
Para especificar una ruta que contenga espacios, entrecomille la ruta utilizando la técnica descrita en Espacios en blanco.
win32:INCLUDEPATH += "C:/mylibs/extra headers" unix:INCLUDEPATH += "/home/user/extra headers"
INSTALACIONES
Especifica una lista de recursos que se instalarán cuando se ejecute make install o un procedimiento de instalación similar. Cada elemento de la lista suele definirse con atributos que proporcionan información sobre dónde se instalará.
Por ejemplo, la siguiente definición target.path describe dónde se instalará el objetivo de compilación, y la asignación INSTALLS añade el objetivo de compilación a la lista de recursos existentes que se instalarán:
target.path += $$[QT_INSTALL_PLUGINS]/imageformats INSTALLS += target
INSTALLS tiene un miembro .CONFIG que puede tomar varios valores:
| Valor | Descripción |
|---|---|
| no_check_exist | Si no se establece, qmake comprueba si los archivos a instalar existen realmente. Si estos archivos no existen, qmake no crea la regla de instalación. Utilice este valor de configuración si necesita instalar archivos generados como parte del proceso de compilación, como archivos HTML creados por qdoc. |
| nostrip | Si se establece, la funcionalidad típica de strip de Unix se desactiva y la información de depuración permanecerá en el binario. |
| ejecutable | En Unix, establece la bandera ejecutable. |
| no_build | Cuando usted hace un make install, y usted no tiene una construcción del proyecto todavía, el proyecto es primero construido, y luego instalado. Si no desea este comportamiento, establezca este valor de configuración para asegurarse de que el objetivo de compilación no se añade como dependencia al objetivo de instalación. |
| no_default_install | Un proyecto tiene un objetivo de proyecto de nivel superior donde, cuando se hace un make install, todo se instala. Pero, si tienes un objetivo de instalación con este valor de configuración, no se instala por defecto. Entonces tiene que decir explícitamente make install_<file>. |
Para obtener más información, consulte Instalación de archivos.
Esta variable también se utiliza para especificar qué archivos adicionales se desplegarán en los dispositivos embebidos.
JAVA_HOME
Nota: Esta variable sólo es útil para objetivos Android.
Especifica la ruta de instalación de JDK/OpenJDK utilizada para construir el proyecto.
LEXIMPLS
Especifica una lista de archivos de implementación de Lex. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
LEXOBJECTS
Especifica los nombres de los archivos de objetos Lex intermedios. El valor de esta variable es normalmente manejado por qmake y rara vez necesita ser modificado.
LEXSOURCES
Especifica una lista de archivos fuente Lex. Todas las dependencias, cabeceras y archivos fuente se añadirán automáticamente al proyecto para construir estos archivos lex.
Por ejemplo
LEXSOURCES = lexer.l
LIBS
Especifica una lista de bibliotecas que se vincularán al proyecto. Si utiliza el Unix -l (biblioteca) y -L (ruta de la biblioteca) banderas, qmake maneja las bibliotecas correctamente en Windows (es decir, pasa la ruta completa de la biblioteca para el enlazador). La biblioteca debe existir para que qmake encuentre el directorio en el que se encuentra -l lib.
Por ejemplo:
unix:LIBS += -L/usr/local/lib -lmath win32:LIBS += c:/mylibs/math.lib
Para especificar una ruta que contenga espacios, cite la ruta utilizando la técnica descrita en Espacios en blanco.
win32:LIBS += "C:/mylibs/extra libs/extra.lib" unix:LIBS += "-L/home/user/extra libs" -lextra
Por defecto, la lista de librerías almacenada en LIBS se reduce a una lista de nombres únicos antes de ser utilizada. Para cambiar este comportamiento, añada la opción no_lflags_merge a la variable CONFIG:
CONFIG += no_lflags_merge
LIBS_PRIVATE
Especifica una lista de bibliotecas que se enlazarán de forma privada en el proyecto. El comportamiento de esta variable es idéntico a LIBS, excepto que los proyectos de bibliotecas compartidas construidos para Unix no exponen estas dependencias en su interfaz de enlace.
El efecto de esto es que si el proyecto C depende de la biblioteca B que depende de la biblioteca A de forma privada, pero C también quiere utilizar símbolos de A directamente, necesita enlazar con A explícitamente. Dicho de otro modo, las bibliotecas enlazadas de forma privada no se exponen transitivamente en tiempo de compilación.
HASH_LITERAL
Esta variable se utiliza siempre que se necesita un carácter hash literal (#) en una declaración de variable, quizás como parte de un nombre de archivo o en una cadena pasada a alguna aplicación externa.
Por ejemplo:
# To include a literal hash character, use the $$LITERAL_HASH variable: urlPieces = http://doc.qt.io/qt-5/qtextdocument.html pageCount message($$join(urlPieces, $$LITERAL_HASH))
Usando LITERAL_HASH de esta manera, el carácter # puede usarse para construir una URL para que la función message() imprima en la consola.
ARCHIVO MAK
Especifica el nombre del Makefile generado. El valor de esta variable es típicamente manejado por qmake o qmake.conf y raramente necesita ser modificado.
MAKEFILE_GENERATOR
Especifica el nombre del generador de Makefile que se utilizará al generar un Makefile. El valor de esta variable es manejado internamente por qmake y rara vez necesita ser modificado.
MSVCPROJ_*
Estas variables son manejadas internamente por qmake y no deben ser modificadas o utilizadas.
MOC_DIR
Especifica el directorio donde deben colocarse todos los archivos moc intermedios.
Por ejemplo
unix:MOC_DIR = ../myproject/tmp win32:MOC_DIR = c:/myproject/tmp
OBJECTIVE_HEADERS
Define los archivos de cabecera Objective-C++ para el proyecto.
qmake detecta automáticamente si moc es requerido por las clases en las cabeceras, y añade las dependencias y archivos apropiados al proyecto para generar y vincular los archivos moc.
Esto es similar a la variable HEADERS, pero permitirá que los archivos moc generados sean compilados con el compilador Objective-C++.
Véase también OBJECTIVE_SOURCES.
FUENTES_OBJETIVO
Especifica los nombres de todos los archivos fuente Objective-C/C++ del proyecto.
Esta variable ha quedado obsoleta, los archivos Objective-C/C++ (.m y .mm) pueden añadirse a la variable SOURCES.
Véase también OBJECTIVE_HEADERS.
OBJECTS
Esta variable se rellena automáticamente a partir de la variable SOURCES. La extensión de cada archivo fuente se sustituye por .o (Unix) u .obj (Win32). Puede añadir objetos a la lista.
DIRECTORIO_OBJETOS
Especifica el directorio donde deben colocarse todos los objetos intermedios.
Por ejemplo
unix:OBJECTS_DIR = ../myproject/tmp win32:OBJECTS_DIR = c:/myproject/tmp
POST_TARGETDEPS
Enumera las bibliotecas de las que depende el objetivo. Algunos backends, como los generadores de archivos de proyecto de Visual Studio y Xcode, no admiten esta variable. Generalmente, esta variable es soportada internamente por estas herramientas de compilación, y es útil para listar explícitamente las bibliotecas estáticas dependientes.
Esta lista se coloca después de todas las dependencias incorporadas (y $$PRE_TARGETDEPS).
PRE_TARGETDEPS
Lista las bibliotecas de las que depende el objetivo. Algunos backends, como los generadores de archivos de proyecto de Visual Studio y Xcode, no admiten esta variable. Generalmente, esta variable es soportada internamente por estas herramientas de compilación, y es útil para listar explícitamente las bibliotecas estáticas dependientes.
Esta lista se coloca antes de todas las dependencias incorporadas.
CABECERA_PRECOMPILADA
Indica el archivo de cabecera para crear un archivo de cabecera precompilado, para aumentar la velocidad de compilación de un proyecto. Las cabeceras precompiladas sólo están soportadas actualmente en algunas plataformas (Windows - todos los tipos de proyectos MSVC, Apple - Xcode, Makefile, Unix - gcc 3.3 y superiores).
PWD
Especifica la ruta completa que conduce al directorio que contiene el archivo que se está analizando. Esto puede ser útil para referirse a archivos dentro del árbol de fuentes cuando se escriben archivos de proyecto para soportar shadow builds.
Véase también _PRO_FILE_PWD_.
Nota: No intente sobrescribir el valor de esta variable.
OUT_PWD
Especifica la ruta completa que conduce al directorio donde qmake coloca el Makefile generado.
Nota: No intente sobrescribir el valor de esta variable.
QM_FILES_RESOURCE_PREFIX
Especifica el directorio en el sistema de recursos donde .qm archivos estarán disponibles por CONFIG += embed_translations.
El valor predeterminado es :/i18n/.
QM_FILES_INSTALL_PATH
Especifica el directorio de destino en el que se instalarán los archivos .qm generados por CONFIG += lrelease. No tiene ningún efecto si CONFIG += embed_translations está activado.
QML_IMPORT_PATH
Esta variable sólo es utilizada por Qt Creator. Si tienes un módulo extra que se mantiene fuera de tu instalación de Qt, puedes especificar su ruta aquí.
Ver Qt Creator: Using QML Modules with Plugins para más detalles.
QMLPATHS
Espera una lista de rutas de importación que apunten a directorios raíz de árboles de módulos QML. Por ejemplo, si tiene una ubicación personalizada para sus módulos QML, puede especificarla aquí.
Nota: Las entradas de ruta para QMLPATHS apuntan a directorios raíz de árboles de módulos QML. Este es el concepto de rutas de importación que entiende el motor QML. Puede pasar las mismas rutas a través de la variable de entorno QML_IMPORT_PATH a su aplicación QML, pero son diferentes de los contenidos esperados de la variable qmake QML_IMPORT_PATH. Esta última espera que las rutas a módulos individuales sean procesadas únicamente por Qt Creator.
Nota: el contenido de QMLPATHS no se pasa automáticamente a la aplicación. Sólo se utilizan en tiempo de compilación. En particular, qmlimportscanner los utiliza para encontrar cualquier módulo QML que necesite marcar como importado por tu aplicación.
QMAKE
Especifica el nombre del propio programa qmake y se coloca en los Makefiles generados. El valor de esta variable normalmente es manejado por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKESPEC
Variable del sistema que contiene la ruta completa de la configuración de qmake que se utiliza al generar los Makefiles. El valor de esta variable se calcula automáticamente.
Nota: No intente sobrescribir el valor de esta variable.
QMAKE_APPLE_DEVICE_ARCHS
Nota: esta variable sólo se utiliza en macOS.
Especifica una lista de arquitecturas para las que compilar. Por defecto, un proyecto se construye para la arquitectura de la máquina de desarrollo. Esta variable permite anular el valor predeterminado y compilar para una arquitectura diferente o crear binarios multiarquitectura.
Esta variable suele especificarse en la línea de comandos o en el archivo de proyecto.
Ver Qt para macOS para más información.
QMAKE_AR_CMD
Nota: Esta variable sólo se utiliza en plataformas Unix.
Especifica el comando a ejecutar cuando se crea una biblioteca compartida. El valor de esta variable es normalmente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_BUNDLE_DATA
Nota: Esta variable sólo se utiliza en macOS, iOS, tvOS y watchOS.
Especifica los datos que se instalarán con un paquete de bibliotecas, y a menudo se utiliza para especificar una colección de archivos de encabezado.
Por ejemplo, las siguientes líneas añaden path/to/header_one.h y path/to/header_two.h a un grupo que contiene información sobre las cabeceras suministradas con el framework:
FRAMEWORK_HEADERS.version = Versions FRAMEWORK_HEADERS.files = path/to/header_one.h path/to/header_two.h FRAMEWORK_HEADERS.path = Headers QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
La última línea añade la información sobre las cabeceras a la colección de recursos que se instalarán con el paquete de librerías.
Los paquetes de bibliotecas se crean cuando se añade la opción lib_bundle a la variable CONFIG.
Consulte Platform Notes para obtener más información sobre la creación de paquetes de bibliotecas.
Un proyecto también puede utilizar esta variable para agrupar archivos de traducción de aplicaciones. La sintaxis exacta depende de si el proyecto utiliza el sistema de compilación heredado de Xcode o su nuevo sistema de compilación.
Por ejemplo, cuando el siguiente fragmento de proyecto se construye utilizando el sistema de construcción heredado:
translations_en.files = $$PWD/en.lproj/InfoPlist.strings translations_en.path = en.lproj QMAKE_BUNDLE_DATA += translations_en
Xcode ignorará la ubicación original de InfoPlist.strings y el archivo se colocará en el directorio del bundle Resources bajo la ruta proporcionada translations_en.path, de modo que Resources/en.lproj/InfoPlist.strings
Con el nuevo sistema de construcción, la ubicación relativa del archivo se mantiene, lo que significa que el archivo se colocará incorrectamente en Resources/en.lproj/en.lproj/InfoPlist.strings
Para garantizar la ubicación correcta del archivo, el proyecto puede mover el archivo original para que no esté en un subdirectorio o puede optar por no especificar la variable translations_en.path.
# Approach 1 translations_en.files = $$PWD/InfoPlist.strings translations_en.path = en.lproj # Approach 2 translations_de.files = $$PWD/de.lproj/InfoPlist.strings QMAKE_BUNDLE_DATA += translations_en translations_de
Consulte QTBUG-98417 para obtener más detalles sobre cómo el sistema de compilación de Xcode cambió su comportamiento al agrupar archivos de traducción.
QMAKE_BUNDLE_EXTENSION
Nota: Esta variable solo se utiliza en macOS, iOS, tvOS y watchOS.
Especifica la extensión que se utilizará para los paquetes de bibliotecas. Esto permite crear frameworks con extensiones personalizadas en lugar de la extensión estándar del nombre del directorio .framework.
Por ejemplo, la siguiente definición dará como resultado un framework con la extensión .myframework:
QMAKE_BUNDLE_EXTENSION = .myframework
QMAKE_CC
Especifica el compilador C que se utilizará cuando se construyan proyectos que contengan código fuente C. Sólo es necesario especificar el nombre de archivo del ejecutable del compilador siempre que se encuentre en una ruta contenida en la variable PATH cuando se procese el Makefile.
QMAKE_CFLAGS
Especifica las banderas del compilador C para construir un proyecto. El valor de esta variable es manejado típicamente por qmake o qmake.conf y raramente necesita ser modificado. Las banderas específicas para los modos debug y release pueden ajustarse modificando las variables QMAKE_CFLAGS_DEBUG y QMAKE_CFLAGS_RELEASE, respectivamente.
QMAKE_CFLAGS_DEBUG
Especifica las banderas del compilador C para construcciones de depuración. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_CFLAGS_RELEASE
Especifica los indicadores del compilador de C para las compilaciones de lanzamiento. El valor de esta variable es manejado normalmente por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
Especifica las banderas del compilador de C para compilaciones de lanzamiento donde force_debug_info se establece en CONFIG. El valor de esta variable es manejado típicamente por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_CFLAGS_SHLIB
Nota: Esta variable sólo se utiliza en plataformas Unix.
Especifica las banderas del compilador para crear una biblioteca compartida. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_CFLAGS_THREAD
Especifica los indicadores del compilador para crear una aplicación multihilo. El valor de esta variable es normalmente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_CFLAGS_WARN_OFF
Esta variable sólo se utiliza cuando la opción warn_off CONFIG está activada. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_CFLAGS_WARN_ON
Esta variable sólo se utiliza cuando está activada la opción warn_on CONFIG. El valor de esta variable es típicamente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_CLEAN
Especifica una lista de archivos generados (por moc y uic, por ejemplo) y archivos objeto a ser eliminados por make clean.
QMAKE_CXX
Especifica el compilador C++ que se utilizará cuando se construyan proyectos que contengan código fuente C++. Sólo es necesario especificar el nombre de archivo del ejecutable del compilador siempre que se encuentre en una ruta contenida en la variable PATH cuando se procesa el Makefile.
QMAKE_CXXFLAGS
Especifica las banderas del compilador C++ para construir un proyecto. El valor de esta variable es manejado típicamente por qmake o qmake.conf y raramente necesita ser modificado. Las banderas específicas para los modos debug y release pueden ajustarse modificando las variables QMAKE_CXXFLAGS_DEBUG y QMAKE_CXXFLAGS_RELEASE, respectivamente.
QMAKE_CXXFLAGS_DEBUG
Especifica las banderas del compilador C++ para las compilaciones de depuración. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_CXXFLAGS_RELEASE
Especifica los indicadores del compilador de C++ para las compilaciones de lanzamiento. El valor de esta variable es normalmente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_CXXFLAGS_RELEASE_CON_DEBUGINFO
Especifica las banderas del compilador de C++ para compilaciones de lanzamiento donde force_debug_info se establece en CONFIG. El valor de esta variable es típicamente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_CXXFLAGS_SHLIB
Especifica las banderas del compilador C++ para crear una biblioteca compartida. El valor de esta variable es manejado normalmente por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_CXXFLAGS_THREAD
Especifica los indicadores del compilador de C++ para crear una aplicación multihilo. El valor de esta variable es normalmente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_CXXFLAGS_WARN_OFF
Especifica las banderas del compilador C++ para suprimir las advertencias del compilador. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_CXXFLAGS_WARN_ON
Especifica los indicadores del compilador de C++ para generar advertencias del compilador. El valor de esta variable suele ser gestionado por qmake o qmake.conf y rara vez es necesario modificarlo.
QMAKE_EQUIPO_DESARROLLO
Nota: Esta variable sólo se utiliza en macOS, iOS, tvOS y watchOS.
El identificador de un equipo de desarrollo que se utilizará para firmar certificados y aprovisionar perfiles.
QMAKE_DISTCLEAN
Especifica una lista de archivos que se eliminarán mediante make distclean.
QMAKE_EXTENSION_SHLIB
Contiene la extensión de las bibliotecas compartidas. El valor de esta variable suele ser gestionado por qmake o qmake.conf y rara vez es necesario modificarlo.
Nota: Las variables específicas de la plataforma que cambian la extensión anulan el contenido de esta variable.
QMAKE_EXTENSION_STATICLIB
Contiene la extensión para bibliotecas estáticas compartidas. El valor de esta variable es manejado normalmente por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_EXT_MOC
Contiene la extensión utilizada en los archivos moc incluidos.
Ver tambien Extensiones de Archivos.
QMAKE_EXT_UI
Contiene la extensión usada en Qt Widgets Designer UI files.
Véase también Extensiones de archivo.
QMAKE_EXT_PRL
Contiene la extensión utilizada en los archivos PRL creados.
Véase también Extensiones de archivo, Dependencias de biblioteca.
QMAKE_EXT_LEX
Contiene la extensión utilizada en los archivos entregados a Lex.
Ver también Extensiones de archivo, LEXSOURCES.
QMAKE_EXT_YACC
Contiene la extensión usada en los archivos dados a Yacc.
Véase también Extensiones de archivo, YACCSOURCES.
QMAKE_EXT_OBJ
Contiene la extensión utilizada en los archivos de objetos generados.
Ver también Extensiones de archivo.
QMAKE_EXT_CPP
Contiene sufijos para archivos que deben ser interpretados como código fuente C++.
Véase también Extensiones de archivo.
QMAKE_EXT_H
Contiene sufijos para archivos que deben interpretarse como archivos de cabecera C.
Véase también Extensiones de archivo.
QMAKE_EXTRA_COMPILERS
Especifica una lista de compiladores o preprocesadores adicionales.
Véase también Añadir compiladores.
QMAKE_EXTRA_TARGETS
Especifica una lista de objetivos qmake adicionales.
Consulte también Adición de objetivos personalizados.
QMAKE_REQUISITOS_FALLIDOS
Contiene la lista de requisitos fallidos. El valor de esta variable es establecido por qmake y no puede ser modificado.
Ver también requires() y REQUIRES.
QMAKE_FRAMEWORK_BUNDLE_NAME
Nota: Esta variable sólo se utiliza en macOS, iOS, tvOS y watchOS.
En un proyecto de framework, esta variable contiene el nombre que se utilizará para el framework que se construya.
Por defecto, esta variable contiene el mismo valor que la variable TARGET.
Consulte Creación de frameworks para obtener más información sobre la creación de frameworks y paquetes de bibliotecas.
QMAKE_FRAMEWORK_VERSION
Nota: Esta variable solo se utiliza en macOS, iOS, tvOS y watchOS.
En los proyectos en los que el objetivo de compilación es un framework de macOS, iOS, tvOS o watchOS, esta variable se utiliza para especificar el número de versión que se aplicará al framework que se compila.
Por defecto, esta variable contiene el mismo valor que la variable VERSION.
Consulte Creación de frameworks para obtener más información sobre la creación de frameworks.
QMAKE_HOST
Proporciona información sobre la máquina host que ejecuta qmake. Por ejemplo, puede obtener la arquitectura de la máquina host en QMAKE_HOST.arch.
| Claves | Valores |
|---|---|
| .arch | Arquitectura del host |
| .os | Sistema operativo del host |
| .cpu_count | Número de cpus disponibles |
| .name | Nombre del ordenador anfitrión |
| .version | Número de versión del SO del host |
| .cadena_version | Cadena de la versión del SO del host |
win32-g++:contains(QMAKE_HOST.arch, x86_64):{
message("Host is 64bit")
...
}QMAKE_INCDIR
Especifica la lista de rutas de cabecera del sistema que se añaden a INCLUDEPATH. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_INCDIR_EGL
Especifica la ubicación de los archivos de cabecera EGL que se añadirán a INCLUDEPATH al compilar un objetivo compatible con OpenGL/ES u OpenVG. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_INCDIR_OPENGL
Especifica la ubicación de los archivos de encabezado OpenGL que se agregarán a INCLUDEPATH al compilar un objetivo con soporte OpenGL. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
Si la implementación de OpenGL utiliza EGL (la mayoría de los sistemas OpenGL/ES), entonces QMAKE_INCDIR_EGL también puede ser necesario.
QMAKE_INCDIR_OPENGL_ES2
Esta variable especifica la ubicación de los archivos de cabecera OpenGL que se añadirán a INCLUDEPATH cuando se construya un objetivo con soporte OpenGL ES 2.
El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
Si la implementación de OpenGL utiliza EGL (la mayoría de los sistemas OpenGL/ES), entonces QMAKE_INCDIR_EGL también puede ser necesario.
QMAKE_INCDIR_OPENVG
Especifica la ubicación de los archivos de cabecera OpenVG que se añadirán a INCLUDEPATH cuando se construya un objetivo con soporte OpenVG. El valor de esta variable es normalmente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
Si la implementación de OpenVG utiliza EGL, entonces QMAKE_INCDIR_EGL también puede ser necesario.
QMAKE_INCDIR_X11
Nota: Esta variable sólo se utiliza en plataformas Unix.
Especifica la ubicación de las rutas de los archivos de cabecera X11 que se añadirán a INCLUDEPATH al compilar un destino X11. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_INFO_PLIST
Nota: Esta variable sólo se utiliza en las plataformas macOS, iOS, tvOS y watchOS.
Especifica el nombre del archivo de lista de propiedades, .plist, que desea incluir en el paquete de aplicaciones para macOS, iOS, tvOS y watchOS.
En el archivo .plist, puedes definir algunas variables que qmake sustituirá por los valores pertinentes:
| Marcador(es) de posición | Efecto |
|---|---|
${PRODUCT_BUNDLE_IDENTIFIER}, @BUNDLEIDENTIFIER@ | Se expande a la cadena identificadora del paquete de destino, por ejemplo: com.example.myapp. Se determina concatenando los valores de QMAKE_TARGET_BUNDLE_PREFIX y QMAKE_BUNDLE, separados por un punto (.). El valor de QMAKE_BUNDLE se deriva de QMAKE_APPLICATION_BUNDLE_NAME, QMAKE_PLUGIN_BUNDLE_NAME, o QMAKE_FRAMEWORK_BUNDLE_NAME. No debe ser establecido directamente por el proyecto. |
${EXECUTABLE_NAME} @EXECUTABLE@, @LIBRARY@ | Equivale al valor de QMAKE_APPLICATION_BUNDLE_NAME, QMAKE_PLUGIN_BUNDLE_NAME, o QMAKE_FRAMEWORK_BUNDLE_NAME (dependiendo del tipo de objetivo que se esté creando), o TARGET si no se establece ninguno de los valores anteriores. |
${ASSETCATALOG_COMPILER_APPICON_NAME}, @ICON@ | Se expande al valor de ICON. |
${QMAKE_PKGINFO_TYPEINFO}, @TYPEINFO@ | Se expande al valor de QMAKE_PKGINFO_TYPEINFO. |
${QMAKE_FULL_VERSION}, @FULL_VERSION@ | Se expande al valor de VERSION expresado con tres componentes de versión. |
${QMAKE_SHORT_VERSION}, @SHORT_VERSION@ | Se amplía al valor de VERSION expresado con dos componentes de versión. |
${MACOSX_DEPLOYMENT_TARGET} | Se incrementa hasta el valor de QMAKE_MACOSX_DEPLOYMENT_TARGET. |
${IPHONEOS_DEPLOYMENT_TARGET} | Se amplía al valor de QMAKE_IPHONEOS_DEPLOYMENT_TARGET. |
${TVOS_DEPLOYMENT_TARGET} | Cambia al valor de QMAKE_TVOS_DEPLOYMENT_TARGET. |
${WATCHOS_DEPLOYMENT_TARGET} | Cambia al valor de QMAKE_WATCHOS_DEPLOYMENT_TARGET. |
${IOS_LAUNCH_SCREEN} | Se amplía al valor de QMAKE_IOS_LAUNCH_SCREEN. |
Nota: Cuando se utiliza el generador de Xcode, los marcadores de posición anteriores ${var}-estilo son reemplazados directamente por el sistema de construcción Xcode y no son manejados por qmake. Los marcadores de posición de estilo @var@ sólo funcionan con los generadores de Makefile de qmake y no con el generador de Xcode.
Si se construye para iOS, y el archivo .plist contiene la clave NSPhotoLibraryUsageDescription, qmake incluirá un plugin adicional a la construcción que añade soporte de acceso a fotos (a, por ejemplo, QFile/QFileDialog). Consulta la documentación Info.plist de Apple para obtener más información sobre esta clave.
Nota: La mayoría de las veces, el valor predeterminado Info.plist es suficiente.
QMAKE_IOS_OBJETIVO_DESPLIEGUE
Nota: esta variable sólo se utiliza en la plataforma iOS.
Especifica la versión mínima de iOS que admite la aplicación.
Para obtener más información, consulte Expresión de las versiones de iOS compatibles.
QMAKE_IOS_LAUNCH_SCREEN (PANTALLA DE INICIO)
Nota: esta variable sólo se utiliza en la plataforma iOS.
Especifica la pantalla de inicio que utiliza la aplicación. Si no se establece, se utilizará una pantalla de inicio predeterminada.
QMAKE_LFLAGS
Especifica un conjunto general de banderas que se pasan al enlazador. Si necesitas cambiar las banderas usadas para una plataforma o tipo de proyecto en particular, usa una de las variables especializadas para ese propósito en lugar de esta variable.
QMAKE_LFLAGS_CONSOLA
Nota: Esta variable sólo se utiliza en Windows.
Especifica las banderas del enlazador para construir programas de consola. El valor de esta variable es típicamente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_LFLAGS_DEBUG
Especifica los indicadores del enlazador para las compilaciones de depuración. El valor de esta variable es manejado normalmente por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_LFLAGS_PLUGIN
Especifica las banderas del enlazador para la construcción de plugins. El valor de esta variable es manejado típicamente por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_LFLAGS_RPATH
Nota: Esta variable sólo se utiliza en plataformas Unix.
Especifica las banderas del enlazador necesarias para utilizar los valores de QMAKE_RPATHDIR.
El valor de esta variable es manejado típicamente por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_LFLAGS_REL_RPATH
Especifica las banderas del enlazador necesarias para habilitar rutas relativas en QMAKE_RPATHDIR.
El valor de esta variable es típicamente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_REL_RPATH_BASE
Especifica la cadena que el enlazador dinámico entiende como la ubicación del ejecutable o biblioteca de referencia.
El valor de esta variable es manejado normalmente por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_LFLAGS_RPATHLINK
Especifica las banderas del enlazador necesarias para usar los valores de QMAKE_RPATHLINKDIR.
El valor de esta variable es típicamente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_LFLAGS_RELEASE
Especifica los indicadores del enlazador para las compilaciones de lanzamiento. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_LFLAGS_RELEASE_CON_DEBUGINFO
Especifica las banderas del enlazador para compilaciones de lanzamiento donde force_debug_info se establece en CONFIG. El valor de esta variable es típicamente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_LFLAGS_APP
Especifica las banderas del enlazador para construir aplicaciones. El valor de esta variable es manejado normalmente por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_LFLAGS_SHLIB
Especifica los indicadores del enlazador utilizados para compilar bibliotecas compartidas. El valor de esta variable es normalmente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_LFLAGS_SONAME
Especifica las banderas del enlazador para establecer el nombre de los objetos compartidos, como .so o .dll. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_LFLAGS_THREAD
Especifica las banderas del enlazador para construir proyectos multi-hilo. El valor de esta variable es típicamente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_LFLAGS_WINDOWS
Nota: Esta variable se utiliza sólo en Windows.
Especifica las banderas del enlazador para construir proyectos Windows GUI (es decir, aplicaciones que no son de consola). El valor de esta variable es normalmente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_LIBDIR
Especifica una lista de rutas de búsqueda de bibliotecas para todos los proyectos. El valor de esta variable es manejado normalmente por qmake o qmake.conf y rara vez necesita ser modificado.
Para especificar rutas de búsqueda adicionales en los archivos de proyecto, utilice LIBS así, en su lugar:
LIBS += -L/path/to/libraries
QMAKE_LIBDIR_POST
Especifica una lista de rutas de búsqueda de bibliotecas del sistema para todos los proyectos. El valor de esta variable suele ser gestionado por qmake o qmake.conf y rara vez es necesario modificarlo.
QMAKE_LIBDIR_FLAGS
Nota: Esta variable sólo se utiliza en plataformas Unix.
Especifica la ubicación de todos los directorios de biblioteca con el prefijo -L. El valor de esta variable es manejado típicamente por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_LIBDIR_EGL
Especifica la ubicación del directorio de la biblioteca EGL, cuando se utiliza EGL con OpenGL/ES u OpenVG. El valor de esta variable es manejado normalmente por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_LIBDIR_OPENGL
Especifica la ubicación del directorio de la biblioteca OpenGL. El valor de esta variable suele ser gestionado por qmake o qmake.conf y rara vez es necesario modificarlo.
Si la implementación de OpenGL utiliza EGL (la mayoría de los sistemas OpenGL/ES), puede que también sea necesario establecer QMAKE_LIBDIR_EGL.
QMAKE_LIBDIR_OPENVG
Especifica la ubicación del directorio de la biblioteca OpenVG. El valor de esta variable es normalmente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
Si la implementación de OpenVG utiliza EGL, puede que también sea necesario establecer QMAKE_LIBDIR_EGL.
QMAKE_LIBDIR_X11
Nota: Esta variable sólo se utiliza en plataformas Unix.
Especifica la ubicación del directorio de la biblioteca X11. El valor de esta variable suele ser gestionado por qmake o qmake.conf y rara vez es necesario modificarlo.
QMAKE_LIBS
Especifica las bibliotecas adicionales que cada proyecto necesita para enlazar. El valor de esta variable es normalmente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
Para especificar las bibliotecas en un archivo de proyecto, utilice LIBS en su lugar.
QMAKE_LIBS_PRIVATE
Especifica bibliotecas privadas adicionales con las que cada proyecto necesita enlazar. El valor de esta variable suele ser gestionado por qmake o qmake.conf y rara vez es necesario modificarlo.
Para especificar bibliotecas privadas en un archivo de proyecto de biblioteca, utilice LIBS_PRIVATE en su lugar.
QMAKE_LIBS_EGL
Especifica todas las librerías EGL cuando se construye Qt con OpenGL/ES u OpenVG. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado. El valor habitual es -lEGL.
QMAKE_LIBS_OPENGL
Especifica todas las bibliotecas OpenGL. El valor de esta variable suele ser gestionado por qmake o qmake.conf y rara vez es necesario modificarlo.
Si la implementación de OpenGL utiliza EGL (la mayoría de los sistemas OpenGL/ES), puede que también sea necesario definir QMAKE_LIBS_EGL.
QMAKE_LIBS_OPENGL_ES1, QMAKE_LIBS_OPENGL_ES2
Estas variables especifican todas las librerías OpenGL para OpenGL ES 1 y OpenGL ES 2.
El valor de estas variables suele ser gestionado por qmake o qmake.conf y rara vez es necesario modificarlo.
Si la implementación de OpenGL utiliza EGL (la mayoría de los sistemas OpenGL/ES), puede que también sea necesario definir QMAKE_LIBS_EGL.
QMAKE_LIBS_OPENVG
Especifica todas las bibliotecas OpenVG. El valor de esta variable suele ser gestionado por qmake o qmake.conf y rara vez es necesario modificarlo. El valor habitual es -lOpenVG.
Algunos motores OpenVG se implementan sobre OpenGL. Esto se detectará en el momento de la configuración y QMAKE_LIBS_OPENGL se añadirá implícitamente a QMAKE_LIBS_OPENVG siempre que se enlacen las bibliotecas OpenVG.
Si la implementación de OpenVG utiliza EGL, entonces QMAKE_LIBS_EGL también puede necesitar ser configurado.
QMAKE_LIBS_HILO
Nota: Esta variable sólo se utiliza en plataformas Unix.
Especifica todas las librerías que necesitan ser enlazadas cuando se construye un objetivo multi-hilo. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_LIBS_X11
Nota: Esta variable sólo se utiliza en plataformas Unix.
Especifica todas las bibliotecas X11. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_LIB_FLAG
Esta variable no está vacía si se especifica la plantilla lib. El valor de esta variable es típicamente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_ENLACE
Especifica el enlazador que se utilizará al construir proyectos basados en aplicaciones. Sólo es necesario especificar el nombre de archivo del ejecutable del enlazador siempre que se encuentre en una ruta contenida en la variable PATH cuando se procesa el Makefile. El valor de esta variable es típicamente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_LINK_SHLIB_CMD
Especifica el comando a ejecutar cuando se crea una biblioteca compartida. El valor de esta variable es normalmente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_LN_SHLIB
Especifica el comando a ejecutar cuando se crea un enlace a una biblioteca compartida. El valor de esta variable es típicamente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_LRELEASE_FLAGS
Lista de opciones adicionales pasadas a lrelease cuando se activa a través de CONFIG += lrelease.
QMAKE_OBJECTIVE_CFLAGS
Especifica las banderas del compilador Objective C/C++ para construir un proyecto. Estos indicadores se utilizan además de QMAKE_CFLAGS y QMAKE_CXXFLAGS.
QMAKE_POST_LINK
Especifica el comando a ejecutar después de enlazar el TARGET. Esta variable normalmente está vacía y por lo tanto no se ejecuta nada.
Nota: Esta variable no tiene efecto en los proyectos Xcode.
QMAKE_PRE_LINK
Especifica el comando a ejecutar antes de enlazar el TARGET. Esta variable suele estar vacía y, por tanto, no se ejecuta nada.
Advertencia: Esta variable no es compatible cuando se utiliza el generador de Xcode y el nuevo sistema de compilación de Xcode.
QMAKE_NOMBRE_PROYECTO
Nota: Esta variable sólo se utiliza para archivos de proyecto de Visual Studio.
Determina el nombre del proyecto cuando se generan archivos de proyecto para IDEs. El valor predeterminado es el nombre de destino. El valor de esta variable es normalmente manejado por qmake y rara vez necesita ser modificado.
QMAKE_PROVISIONING_PROFILE
Nota: Esta variable sólo se utiliza en macOS, iOS, tvOS y watchOS.
UUID de un perfil de aprovisionamiento válido. Se utiliza junto con QMAKE_DEVELOPMENT_TEAM para especificar el perfil de aprovisionamiento.
Nota: Al especificar el perfil de aprovisionamiento se desactiva la firma gestionada automáticamente.
QMAKE_MAC_SDK
Esta variable se utiliza en macOS al compilar binarios universales.
QMAKE_MACOSX_DEPLOYMENT_TARGET (OBJETIVO DE DESPLIEGUE DE QMAKE_MACOSX)
Nota: Esta variable sólo se utiliza en la plataforma macOS.
Especifica la versión mínima de macOS que admite la aplicación.
Para obtener más información, consulte Configuraciones compatibles con macOS.
QMAKE_MAKEFILE
Especifica el nombre del Makefile a crear. El valor de esta variable es normalmente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_QMAKE
Contiene la ruta absoluta del ejecutable qmake.
Nota: No intente sobrescribir el valor de esta variable.
QMAKE_RESOURCE_FLAGS
Esta variable se utiliza para personalizar la lista de opciones que se pasan a qmake Resource Compiler en cada una de las reglas de compilación en las que se utiliza. Por ejemplo, la siguiente línea asegura que las opciones -threshold y -compress sean usadas con valores particulares cada vez que rcc es invocado:
QMAKE_RESOURCE_FLAGS += -threshold 0 -compress 9
QMAKE_RPATHDIR
Nota: Esta variable sólo se utiliza en plataformas Unix.
Especifica una lista de rutas de biblioteca que se añaden al ejecutable en tiempo de enlace para que las rutas se busquen preferentemente en tiempo de ejecución.
Cuando se especifican rutas relativas, qmake las convertirá a un formato que el enlazador dinámico entienda como relativo a la ubicación del ejecutable o biblioteca de referencia. Esto es soportado sólo por algunas plataformas (actualmente Linux y las basadas en Darwin) y es detectable comprobando si QMAKE_REL_RPATH_BASE está establecido.
QMAKE_RPATHLINKDIR
Especifica una lista de rutas de bibliotecas para que el enlazador estático busque dependencias implícitas de bibliotecas compartidas. Para obtener más información, consulte la página de manual de ld(1).
QMAKE_RUN_CC
Especifica la regla individual necesaria para construir un objeto. El valor de esta variable es típicamente manejado por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_RUN_CC_IMP
Especifica la regla individual necesaria para construir un objeto. El valor de esta variable es normalmente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_RUN_CXX
Especifica la regla individual necesaria para construir un objeto. El valor de esta variable es típicamente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_RUN_CXX_IMP
Especifica la regla individual necesaria para construir un objeto. El valor de esta variable es manejado típicamente por qmake o qmake.conf y raramente necesita ser modificado.
QMAKE_SONAME_PREFIX
Si se define, el valor de esta variable se utiliza como una ruta que se añade al identificador SONAME de la biblioteca compartida creada. SONAME es el identificador que el enlazador dinámico utilizará posteriormente para hacer referencia a la biblioteca. En general, esta referencia puede ser un nombre de biblioteca o una ruta de biblioteca completa. En macOS, iOS, tvOS y watchOS, la ruta puede especificarse relativamente utilizando los siguientes marcadores de posición:
| Marcador de posición | Efecto |
|---|---|
| @rpath | Se expande a las rutas definidas por los comandos mach-o LC_RPATH en el ejecutable del proceso actual o en las bibliotecas de referencia. |
| @ruta_ejecutable | Se expande a la ubicación del ejecutable del proceso actual. |
| @ruta_cargador | Se expande a la ubicación del ejecutable o biblioteca de referencia. |
En la mayoría de los casos, el uso de @rpath es suficiente y recomendable:
# <project root>/project.pro QMAKE_SONAME_PREFIX = @rpath
Sin embargo, el prefijo también puede especificarse utilizando diferentes marcadores de posición, o una ruta absoluta, como una de las siguientes:
# <project root>/project.pro QMAKE_SONAME_PREFIX = @executable_path/../Frameworks QMAKE_SONAME_PREFIX = @loader_path/Frameworks QMAKE_SONAME_PREFIX = /Library/Frameworks
Para más información, consulte la documentación de dyld sobre nombres de instalación de bibliotecas dinámicas.
QMAKE_TARGET
Especifica el nombre del objetivo del proyecto. El valor de esta variable es normalmente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
QMAKE_TARGET_EMPRESA
Sólo para Windows. Especifica la empresa para el objetivo del proyecto; esto se utiliza en su caso para poner el nombre de la empresa en las propiedades de la aplicación. Sólo se utiliza si está definida la variable VERSION o RC_ICONS y no están definidas las variables RC_FILE y RES_FILE.
QMAKE_TARGET_DESCRIPTION
Sólo para Windows. Especifica la descripción del objetivo del proyecto; se utiliza cuando procede para poner la descripción en las propiedades de la aplicación. Sólo se utiliza si las variables VERSION o RC_ICONS están definidas y las variables RC_FILE y RES_FILE no lo están.
QMAKE_TARGET_COPYRIGHT
Sólo para Windows. Especifica la información de copyright para el objetivo del proyecto; esto se utiliza cuando es aplicable para poner la información de copyright en las propiedades de la aplicación. Sólo se utiliza si la variable VERSION o RC_ICONS está definida y las variables RC_FILE y RES_FILE no están definidas.
QMAKE_TARGET_PRODUCTO
Sólo para Windows. Especifica el producto para el objetivo del proyecto; se utiliza cuando procede para poner el producto en las propiedades de la aplicación. Sólo se utiliza si la variable VERSION o RC_ICONS está definida y las variables RC_FILE y RES_FILE no están definidas.
QMAKE_TARGET_ORIGINAL_FILENAME
Sólo para Windows. Especifica el nombre de archivo original para el objetivo del proyecto; se utiliza cuando procede para poner el nombre de archivo original en las propiedades de la aplicación. Sólo se utiliza si la variable VERSION o RC_ICONS está establecida y las variables RC_FILE y RES_FILE no están establecidas.
QMAKE_TARGET_NOMBRE_INTERNO
Sólo para Windows. Especifica el nombre interno para el objetivo del proyecto; se utiliza cuando procede para poner el nombre interno en las propiedades de la aplicación. Sólo se utiliza si la variable VERSION o RC_ICONS está establecida y las variables RC_FILE y RES_FILE no están establecidas.
QMAKE_TARGET_COMMENTS
Sólo para Windows. Especifica los comentarios para el objetivo del proyecto; esto se utiliza en su caso para poner los comentarios en las propiedades de la aplicación. Sólo se utiliza si la variable VERSION o RC_ICONS está definida y las variables RC_FILE y RES_FILE no están definidas.
QMAKE_TARGET_TRADEMARKS
Sólo para Windows. Especifica la información de marca comercial para el objetivo del proyecto; se utiliza cuando procede para poner la información de marca comercial en las propiedades de la aplicación. Esto sólo se utiliza si la variable VERSION o RC_ICONS está establecida y las variables RC_FILE y RES_FILE no están establecidas.
QMAKE_MANIFEST
Sólo para Windows. Especifica el archivo de manifiesto para el objetivo del proyecto. Sólo se utiliza si las variables RC_FILE y RES_FILE no están establecidas. No olvides eliminar embed_manifest_exe y embed_manifest_dll de la variable CONFIG, de lo contrario entrará en conflicto con el generado por el compilador.
QMAKE_TVOS_OBJETIVO_DESPLIEGUE
Nota: Esta variable sólo se utiliza en la plataforma tvOS.
Especifica la versión mínima de tvOS que admite la aplicación.
Para obtener más información, consulta Expresión de las versiones de iOS compatibles.
QMAKE_UIC_FLAGS
Esta variable se utiliza para personalizar la lista de opciones que se pasan al comando User Interface Compiler en cada una de las reglas de compilación en las que se utiliza.
QMAKE_WATCHOS_DEPLOYMENT_TARGET
Nota: Esta variable sólo se utiliza en la plataforma watchOS.
Especifica la versión mínima de watchOS que soporta la aplicación.
Para obtener más información, consulta Expresión de las versiones de iOS compatibles.
QML_IMPORT_MAJOR_VERSION
Especifica la versión principal que se utilizará para los registros de tipos QML generados automáticamente. Para obtener más información, consulte Definición de tipos QML desde C++.
QML_IMPORT_MINOR_VERSION
Al registrar automáticamente tipos QML definidos en C++, registra una versión adicional del módulo utilizando esta versión menor. Generalmente, las versiones menores a registrar se deducen de los metaobjetos.
Puede utilizar esta variable si los metaobjetos no han cambiado y aún desea importar un módulo QML con un número de versión menor más reciente. Por ejemplo, los metaobjetos MyModule están en el nivel 1.1, pero se desea importar el módulo como 1.3.
QML_IMPORT_VERSION
Especifica QML_IMPORT_MAJOR_VERSION y QML_IMPORT_MINOR_VERSION como cadena de versión <major>.<minor>.
QML_IMPORT_NAME
Especifica el nombre del módulo que se utilizará para los registros de tipos QML generados automáticamente. Para obtener más información, consulte Definición de tipos QML desde C++.
QML_FOREIGN_METATYPES
Especifica otros archivos JSON con metatipos que deben tenerse en cuenta al generar archivos qmltypes. Utilícelo cuando bibliotecas externas proporcionen tipos que estén expuestos a QML, ya sea directamente o como tipos base o propiedades de otros tipos. Los tipos Qt se considerarán automáticamente y no es necesario añadirlos aquí.
QT
Especifica los módulos Qt que utiliza el proyecto. Para conocer el valor a añadir para cada módulo, consulte la documentación del módulo.
A nivel de implementación de C++, el uso de un módulo Qt hace que sus cabeceras estén disponibles para su inclusión y hace que se vincule al binario.
Por defecto, QT contiene core y gui, asegurando que las aplicaciones GUI estándar puedan ser construidas sin más configuración.
Si desea compilar un proyecto sin el módulo Qt GUI es necesario excluir el valor gui con el operador "-=". La siguiente línea resultará en la construcción de un proyecto Qt mínimo:
QT -= gui # Only the core module is used.
Si su proyecto es un plugin de Qt Widgets Designer, utilice el valor uiplugin para especificar que el proyecto debe construirse como una biblioteca, pero con soporte específico de plugin para Qt Widgets Designer. Para más información, vea Construir e Instalar el Plugin.
QTPLUGIN
Especifica una lista de nombres de plugins estáticos de Qt que deben vincularse con una aplicación para que estén disponibles como recursos integrados.
qmake añade automáticamente los plugins que suelen necesitar los módulos Qt utilizados (véase QT). Los valores predeterminados se ajustan hacia una experiencia óptima out-of-the-box. Ver Plugins estáticos para una lista de plugins disponibles, y formas de anular la vinculación automática.
Esta variable actualmente no tiene efecto cuando se enlaza contra una compilación compartida/dinámica de Qt, o cuando se enlazan librerías. Puede usarse para el despliegue de plugins dinámicos más adelante.
QT_VERSION
Contiene la versión actual de Qt.
QT_VERSION_MAYOR
Contiene la versión principal actual de Qt.
QT_MINOR_VERSION
Contiene la versión menor actual de Qt.
QT_PATCH_VERSION
Contiene la versión actual del parche de Qt.
ARCHIVO_CR
Sólo para Windows. Especifica el nombre del archivo de recursos de Windows (.rc) para el objetivo. Consulte Adición de archivos de recursos de Windows.
RC_CODEPAGE
Sólo para Windows. Especifica la página de código que debe especificarse en un archivo .rc generado. Sólo se utiliza si las variables VERSION o RC_ICONS están definidas y las variables RC_FILE y RES_FILE no lo están.
RC_DEFINES
Sólo para Windows. qmake agrega los valores de esta variable como macros del preprocesador RC (opción /d). Si no se establece esta variable, se utiliza la variable DEFINES en su lugar.
RC_DEFINES += USE_MY_STUFF
RC_ICONS
Sólo para Windows. Especifica los iconos que deben incluirse en un archivo .rc generado. Sólo se utiliza si las variables RC_FILE y RES_FILE no están definidas. Puede encontrar más detalles sobre la generación de archivos .rc en las Platform Notes.
RC_LANG
Sólo para Windows. Especifica el idioma que debe especificarse en un archivo .rc generado. Sólo se utiliza si la variable VERSION o RC_ICONS está definida y las variables RC_FILE y RES_FILE no están definidas.
RC_INCLUDEPATH
Especifica las rutas de inclusión que se pasan a Windows Resource Compiler.
RCC_DIR
Especifica el directorio para los archivos de salida de Qt Resource Compiler.
Por ejemplo:
unix:RCC_DIR = ../myproject/resources win32:RCC_DIR = c:/myproject/resources
REQUIERE
Especifica una lista de valores que se evalúan como condiciones. Si alguna de las condiciones es falsa, qmake omite este proyecto (y sus SUBDIRS) al construir.
Nota: Recomendamos utilizar la función requires() si desea omitir proyectos o subproyectos durante la compilación.
RECURSOS
Especifica el nombre de los archivos de colección de recursos (qrc) para el objetivo. Para más información sobre el archivo de colección de recursos, ver El Sistema de Recursos Qt.
ARCHIVO_RES
Sólo para Windows. Especifica el nombre del archivo de salida del Resource Compiler de Windows para este objetivo. Ver RC_FILE y Añadir archivos de recursos Windows.
El valor de esta variable es típicamente manejado por qmake o qmake.conf y raramente necesita ser modificado.
FUENTES
Especifica los nombres de todos los archivos fuente del proyecto.
Nota sobre los archivos fuente incluidos
Por defecto, QMake escanea los archivos fuente en busca de dependencias y excluye automáticamente los archivos .cpp que están incluidos en otros archivos .cpp para evitar la duplicación de la compilación y los errores del enlazador. Esta exclusión automática tiene importantes limitaciones:
- La exclusión se produce independientemente de las condicionales del preprocesador (
#ifdef,#ifndef, etc.). - Un archivo .cpp
#includeden cualquier parte del proyecto será excluido deSOURCES, incluso si el include es condicional.
Para forzar la compilación de los archivos excluidos, añada CONFIG += compile_included_sources a su archivo .pro. Alternativamente, elimine los archivos incluidos de SOURCES y asegúrese de que sólo se compilan a través de su archivo de inclusión. Esto se aplica a todos los archivos con extensiones en QMAKE_EXT_CPP.
Por ejemplo:
SOURCES = myclass.cpp \
login.cpp \
mainwindow.cppVer también HEADERS.
SUBDIRS
Esta variable, cuando se utiliza con la plantilla subdirs especifica los nombres de todos los subdirectorios o archivos de proyecto que contienen partes del proyecto que necesitan ser construidas. Cada subdirectorio especificado mediante esta variable debe contener su propio archivo de proyecto.
Se recomienda que el archivo de proyecto de cada subdirectorio tenga el mismo nombre base que el propio subdirectorio, porque así es posible omitir el nombre del archivo. Por ejemplo, si el subdirectorio se llama myapp, el archivo de proyecto en ese directorio debe llamarse myapp.pro.
Alternativamente, puede especificar una ruta relativa a un archivo .pro en cualquier directorio. Se recomienda encarecidamente que sólo especifique rutas en el directorio principal del proyecto actual o en sus subdirectorios.
Por ejemplo:
SUBDIRS = kernel \
tools \
myappSi necesita asegurarse de que los subdirectorios se construyen en un orden determinado, utilice el modificador .depends en los elementos SUBDIRS pertinentes.
Por ejemplo:
SUBDIRS += my_executable my_library tests doc my_executable.depends = my_library tests.depends = my_executable
La configuración anterior garantiza que my_library se construya antes que my_executable y que my_executable se construya antes que tests. Sin embargo, doc puede construirse en paralelo con los otros subdirectorios, acelerando así el proceso de construcción.
Nota: Se pueden listar múltiples dependencias y todas se construirán antes que el objetivo que dependa de ellas.
Nota: Se desaconseja utilizar CONFIG += ordered, ya que puede ralentizar las compilaciones multinúcleo. A diferencia del ejemplo anterior, todas las construcciones se realizarán secuencialmente incluso si no tienen dependencias.
Además de definir el orden de compilación, es posible modificar el comportamiento por defecto de SUBDIRS dando modificadores adicionales a los elementos de SUBDIRS. Los modificadores soportados son:
| Modificador | Efecto |
|---|---|
| .subdir | Utiliza el subdirectorio especificado en lugar del valor de SUBDIRS. |
| .file | Especifica explícitamente el archivo del subproyecto pro. No puede utilizarse junto con el modificador .subdir. |
| .depends | Este subproyecto depende del subproyecto o subproyectos especificados. |
| .makefile | El makefile del subproyecto. Sólo disponible en plataformas que utilicen makefiles. |
| .target | Cadena base usada para los objetivos makefile relacionados con este subproyecto. Disponible sólo en plataformas que utilizan makefiles. |
Por ejemplo, definir dos subdirectorios, ambos de los cuales residen en un directorio diferente al valor SUBDIRS, y uno de los subdirectorios debe ser construido antes que el otro:
SUBDIRS += my_executable my_library my_executable.subdir = app my_executable.depends = my_library my_library.subdir = lib
TARGET
Especifica el nombre del archivo de destino. Contiene por defecto el nombre base del fichero de proyecto.
Por ejemplo:
TEMPLATE = app TARGET = myapp SOURCES = main.cpp
El archivo de proyecto anterior produciría un ejecutable llamado myapp en unix y myapp.exe en Windows.
TARGET_EXT
Especifica la extensión de TARGET. El valor de esta variable es normalmente manejado por qmake o qmake.conf y rara vez necesita ser modificado.
TARGET_x
Especifica la extensión de TARGET con un número de versión principal. El valor de esta variable suele ser gestionado por qmake o qmake.conf y rara vez es necesario modificarlo.
TARGET_x.y.z
Especifica la extensión de TARGET con un número de versión. El valor de esta variable es manejado típicamente por qmake o qmake.conf y raramente necesita ser modificado.
PLANTILLA
Especifica el nombre de la plantilla a utilizar al generar el proyecto. Los valores permitidos son:
| Opción | Descripción |
|---|---|
| app | Crea un Makefile para construir aplicaciones (por defecto). Consulte Creación de una aplicación para obtener más información. |
| lib | Crea un Makefile para construir bibliotecas. Vea Construir una biblioteca para más información. |
| subdirectorios | Crea un Makefile para construir objetivos en subdirectorios. Los subdirectorios se especifican utilizando la variable SUBDIRS. |
| aux | Crea un Makefile para no construir nada. Utilícelo si no necesita invocar ningún compilador para crear el objetivo; por ejemplo, porque su proyecto está escrito en un lenguaje interpretado. Nota: Este tipo de plantilla sólo está disponible para generadores basados en Makefile. En particular, no funcionará con los generadores vcxproj y Xcode. |
| vcapp | Sólo para Windows. Crea un proyecto de aplicación para Visual Studio. Consulte Creación de archivos de proyecto de Visual Studio para obtener más información. |
| vclib | Sólo para Windows. Crea un proyecto de biblioteca para Visual Studio. |
Por ejemplo:
TEMPLATE = lib SOURCES = main.cpp TARGET = mylib
La plantilla puede anularse especificando un nuevo tipo de plantilla con la opción de línea de comandos -t. Esto anula el tipo de plantilla una vez procesado el archivo .pro. Con los archivos .pro que utilizan el tipo de plantilla para determinar cómo se construye el proyecto, es necesario declarar TEMPLATE en la línea de comandos en lugar de utilizar la opción -t.
TRADUCCIONES
Especifica una lista de archivos de traducción (.ts) que contienen traducciones del texto de la interfaz de usuario a idiomas no nativos.
Los archivos de traducción de TRANSLATIONS serán procesados por las herramientas lrelease y Using lupdate. Utilice EXTRA_TRANSLATIONS si desea que sólo lrelease procese un archivo.
Puede utilizar CONFIG += lrelease para compilar automáticamente los archivos durante la compilación, y CONFIG += lrelease embed_translations para que estén disponibles en el sistema de recursos Qt.
Ver el ManualQt Linguist para más información sobre internacionalización (i18n) y localización (l10n) con Qt.
TR_EXCLUDE
Especifica una lista de rutas (archivos fuente, subdirectorios y rutas de inclusión de C++) que deben ser excluidas del manejo en lupdate. Las rutas pueden contener comodines. Las rutas relativas se consideran relativas a _PRO_FILE_PWD_.
Por ejemplo, para excluir archivos fuente:
SOURCES += main.cpp \
excluded.cpp \
3rdparty/sqlite3.h \
3rdparty/sqlite3.c
TR_EXCLUDE += excluded.cpp 3rdparty/*Para excluir subdirectorios de un proyecto SUBDIRS:
SUBDIRS += \
libs \
apps \
tests
TR_EXCLUDE += testsPara acelerar el analizador C++ de lupdate, excluya las rutas de inclusión:
linux {
TR_EXCLUDE += /usr/include/boost/*
}UI_DIR
Especifica el directorio donde deben colocarse todos los archivos intermedios de uic.
Por ejemplo
unix:UI_DIR = ../myproject/ui win32:UI_DIR = c:/myproject/ui
VERSION
Especifica el número de versión de la aplicación si se especifica la plantilla app o el número de versión de la biblioteca si se especifica la plantilla lib.
En Windows, activa la generación automática de un archivo .rc si no se establecen las variables RC_FILE y RES_FILE. El archivo .rc generado tendrá las entradas FILEVERSION y PRODUCTVERSION rellenadas con major, minor, nivel de parche y número de compilación. Cada número debe estar en el rango de 0 a 65535. Encontrará más detalles sobre la generación de archivos .rc en las Platform Notes.
Por ejemplo
win32:VERSION = 1.2.3.4 # major.minor.patch.build else:VERSION = 1.2.3 # major.minor.patch
VERSION_PE_HEADER
Sólo para Windows. Especifica el número de versión, que el enlazador de Windows pone en la cabecera del archivo .exe o .dll a través de la opción /VERSION. Sólo se puede especificar una versión mayor y menor. Si no se define VERSION_PE_HEADER, se vuelve a la versión mayor y menor de VERSION (si se define).
VERSION_PE_HEADER = 1.2
VER_MAJ
Especifica el número de versión mayor de la biblioteca si se especifica la plantilla lib.
VER_MIN
Indica el número de versión menor de la biblioteca si se especifica la plantilla lib.
VER_PAT
Indica el número de versión del parche de la biblioteca si se especifica la plantilla lib.
VPATH
Indica a qmake dónde buscar los archivos que no puede abrir. Por ejemplo, si qmake busca SOURCES y encuentra una entrada que no puede abrir, busca en toda la lista VPATH para ver si puede encontrar el archivo por su cuenta.
Ver también DEPENDPATH.
WINDOWS_TARGET_PLATFORM_VERSION
Especifica la versión de Windows de destino; corresponde a la etiqueta WindowsTargetPlatformVersion en los archivos vcxproj.
En Windows de escritorio, el valor predeterminado es el valor de la variable de entorno WindowsSDKVersion.
WINDOWS_TARGET_PLATFORM_MIN_VERSION
Especifica la versión mínima de la plataforma de destino de Windows; corresponde a la etiqueta WindowsTargetPlatformMinVersion en los archivos vcxproj.
Por defecto es WINDOWS_TARGET_PLATFORM_VERSION.
YACCSOURCES
Especifica una lista de archivos fuente Yacc que se incluirán en el proyecto. Todas las dependencias, cabeceras y archivos fuente se incluirán automáticamente en el proyecto.
Por ejemplo
YACCSOURCES = moc.y
_PRO_FICHERO_
Contiene la ruta al archivo del proyecto en uso.
Por ejemplo, la siguiente línea hace que la ubicación del archivo de proyecto se escriba en la consola:
message($$_PRO_FILE_)
Nota: No intente sobrescribir el valor de esta variable.
_PRO_FICHERO_PWD_
Contiene la ruta al directorio que contiene el archivo de proyecto en uso.
Por ejemplo, la siguiente línea hace que se escriba en la consola la ubicación del directorio que contiene el fichero de proyecto:
message($$_PRO_FILE_PWD_)
Nota: No intente sobrescribir el valor de esta variable.
Véase también QQmlEngine::addImportPath().
© 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.