Spec-Zone.ru › Qt

qt_add_plugin

Создаёт целевой модуль Qt плагина.

Команда определена в компоненте Core пакета Qt6. Загрузите пакет с помощью:

find_package(Qt6 COMPONENTS Core REQUIRED)

Резюме

qt_add_plugin(target
              [SHARED | STATIC]
              [CLASS_NAME class_name]
              [OUTPUT_TARGETS variable_name]
)

Если команды без версии отключены, используйте qt6_add_plugin() вместо этого. Она поддерживает тот же набор аргументов, что и эта команда.

Описание

Целевые модули Qt плагинов имеют дополнительные требования помимо обычных целевых модулей CMake библиотек. Команда qt_add_plugin() добавляет необходимую обработку, чтобы гарантировать выполнение этих требований. Её следует использовать вместо встроенной команды CMake add_library() при определении целевого модуля Qt плагина.

По умолчанию плагин будет создан как STATIC библиотека, если Qt был скомпилирован статически, или как MODULE библиотека в противном случае. Вы можете переопределить этот параметр, явно указав опцию STATIC или SHARED.

Примечание: Динамические плагины предназначены для динамической загрузки во время выполнения, а не для линковки во время сборки. CMake различает эти два сценария, предоставляя тип библиотеки MODULE для динамически загружаемых библиотек и тип библиотеки SHARED для библиотек, которые могут быть связаны напрямую. Это различие важно для некоторых компиляторов (в частности, Visual Studio) из-за способа обработки экспорта символов. Возможно, не удастся связать MODULE библиотеки, а создание SHARED библиотеки без экспортируемых символов может привести к ошибкам во время сборки. Если опция SHARED передана в qt_add_plugin(), она создаст MODULE библиотеку вместо SHARED библиотеки.

Каждый плагин Qt имеет имя класса. По умолчанию оно совпадает с target, но его можно переопределить с помощью опции CLASS_NAME. Имя класса соответствует имени C++ класса, который объявляет метаданные для плагина. Для статических плагинов это также имя, передаваемое Q_IMPORT_PLUGIN, которое импортирует плагин в приложение и гарантирует его доступность во время выполнения.

Если плагин скомпилирован статически, qt_add_plugin() может определять дополнительные внутренние целевые модули. Это облегчает автоматический импорт плагина для любого исполняемого файла или динамической библиотеки, которые ссылаются на плагин. Если проект устанавливает плагин и намерен предоставить его другим проектам для линковки, проект также должен установить эти внутренние целевые модули. Имена этих целевых модулей можно получить, указав опцию OUTPUT_TARGETS и имя переменной, в которую необходимо вернуть список целевых модулей.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qt-add-plugin.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API