qt_add_plugin
Crea un objetivo de plugin Qt.
El comando está definido en el componente Core del paquete Qt6, que puede cargarse de este modo:
find_package(Qt6 REQUIRED COMPONENTS Core)
Este comando se introdujo en Qt 6.0.
Sinopsis
qt_add_plugin(target
[SHARED | STATIC]
[CLASS_NAME class_name]
[OUTPUT_TARGETS variable_name]
[MANUAL_FINALIZATION]
sources...
)La opción MANUAL_FINALIZATION y la posibilidad de establecer fuentes se introdujeron en Qt 6.5.
Si los comandos versionless están deshabilitados, utilice qt6_add_plugin() en su lugar. Admite el mismo conjunto de argumentos que este comando.
Descripción
Los objetivos de plugin Qt tienen requisitos adicionales a los de un objetivo de biblioteca CMake normal. El comando qt_add_plugin() añade la gestión necesaria para asegurar que se cumplen estos requisitos. Debe ejecutarse en lugar del comando incorporado de CMake add_library() cuando se define un objetivo de complemento Qt.
Por defecto, el plugin se creará como una biblioteca STATIC si Qt se construyó estáticamente, o como una biblioteca MODULE en caso contrario. Puede anular este valor por defecto proporcionando explícitamente la opción STATIC o SHARED.
Cualquier sources proporcionado será pasado a través de la llamada interna a add_library().
Nota: Los plugins no estáticos están pensados para ser cargados dinámicamente en tiempo de ejecución, no enlazados en tiempo de compilación. CMake diferencia entre estos dos escenarios proporcionando el tipo de biblioteca MODULE para las bibliotecas cargadas dinámicamente, y el tipo de biblioteca SHARED para las bibliotecas que se pueden vincular directamente. Esta distinción es importante para algunas cadenas de herramientas (especialmente Visual Studio), debido a la forma en que se manejan las exportaciones de símbolos. Puede que no sea posible enlazar con bibliotecas MODULE, y generar una biblioteca SHARED sin símbolos exportados puede dar lugar a errores de compilación. Si se pasa la opción SHARED a qt_add_plugin(), se creará una biblioteca MODULE en lugar de SHARED.
Cada plugin de Qt tiene un nombre de clase. Por defecto, este será el mismo que el de target, pero puede anularse con la opción CLASS_NAME. El nombre de la clase corresponde al nombre de la clase C++ que declara los metadatos del plugin. Para los plugins estáticos, es también el nombre que se pasa a Q_IMPORT_PLUGIN, que importa el plugin en una aplicación y asegura que está disponible en tiempo de ejecución.
Si el complemento se construye estáticamente, qt_add_plugin() puede definir objetivos internos adicionales. Éstos facilitan la importación automática del complemento para cualquier ejecutable o biblioteca compartida que enlace con el complemento. Si el proyecto instala el complemento y pretende ponerlo a disposición de otros proyectos para que lo enlacen, también deberá instalar estos objetivos internos. Los nombres de estos objetivos pueden obtenerse proporcionando la opción OUTPUT_TARGETS, seguida del nombre de una variable en la que devolver la lista de objetivos.
Finalización
Una vez creado un objetivo, es posible que sea necesario realizar otros pasos de procesamiento o finalización. El proceso de finalización se implementa mediante el comando qt_finalize_target().
Para obtener más información y conocer el significado de la opción MANUAL_FINALIZATION, consulte la documentación de finalización de qt_add_library.
Véase también qt_finalize_target() y qt_add_executable().
© 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.