Spec-Zone.ru › Qt 5.15

Заметки по платформе

Многие кроссплатформенные проекты можно обрабатывать с помощью основных функций конфигурации qmake. Однако на некоторых платформах иногда бывает полезно или даже необходимо использовать платформоспецифические функции. qmake знает о многих из этих функций, к которым можно получить доступ через определенные переменные, которые действуют только на платформах, где они актуальны.

macOS, iOS, tvOS и watchOS

Функции, специфичные для этих платформ, включают поддержку создания универсальных библиотек, фреймворков и пакетов.

Исходные и бинарные пакеты

Версия qmake, поставляемая в исходных пакетах, настроена немного по-другому, чем та, что поставляется в бинарных пакетах, так как она использует другое описание функций. Где исходный пакет обычно использует описание macx-g++, бинарный пакет обычно настроен на использование описания macx-xcode.

Пользователи каждого пакета могут переопределить эту конфигурацию, вызвав qmake с опцией -spec (см. Запуск qmake для получения дополнительной информации). Например, чтобы использовать qmake из бинарного пакета для создания Makefile в каталоге проекта, выполните следующую команду:

qmake -spec macx-g++

Использование фреймворков

qmake может автоматически генерировать правила сборки для связывания с фреймворками в стандартном каталоге фреймворков macOS, расположенном по адресу /Library/Frameworks/.

Для каталогов, отличных от стандартного каталога фреймворков, необходимо указать параметры компилятору. Это достигается путем добавления параметров компоновщика к переменной LIBS, как показано в следующем примере:

LIBS += -F/path/to/framework/directory/

Сам фреймворк подключается путем добавления параметров -framework и имени фреймворка к переменной LIBS:

LIBS += -framework TheFramework

Создание фреймворков

Любой проект библиотеки можно настроить так, чтобы результирующий файл библиотеки был помещен в фреймворк, готовый к развертыванию. Для этого настройте проект для использования lib шаблона и добавьте опцию lib_bundle к переменной CONFIG:

TEMPLATE = lib
CONFIG += lib_bundle

Данные, связанные с библиотекой, задаются с помощью переменной QMAKE_BUNDLE_DATA. Она содержит элементы, которые будут установлены с пакетом библиотеки, и часто используется для указания набора файлов заголовков, как в следующем примере:

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

Вы используете переменную FRAMEWORK_HEADERS для указания заголовков, необходимых для конкретного фреймворка. Добавление её к переменной QMAKE_BUNDLE_DATA гарантирует, что информация о этих заголовках будет добавлена ​​в набор ресурсов, которые будут установлены вместе с пакетом библиотеки. Также имя и версия фреймворка задаются переменными QMAKE_FRAMEWORK_BUNDLE_NAME и QMAKE_FRAMEWORK_VERSION. По умолчанию значения, используемые для этих переменных, берутся из переменных TARGET и VERSION.

Дополнительную информацию о развертывании приложений и библиотек см. в разделе Qt для macOS — Развертывание.

Создание и перемещение проектов Xcode

Разработчики на macOS могут воспользоваться поддержкой qmake для файлов проекта Xcode, как описано в документации Qt для macOS. запуская qmake для генерации проекта Xcode из существующего файла проекта qmake. Например:

qmake -spec macx-xcode project.pro

Примечание: Если проект позже перемещается на диске, необходимо повторно запустить qmake, чтобы обработать файл проекта и создать новый файл проекта Xcode.

Поддержка двух целей сборки одновременно

Реализация этого в настоящее время невозможна, так как концепция «Активных конфигураций сборки» в Xcode отличается от идеи «целей сборки» в qmake.

Настройки «Активных конфигураций сборки» в Xcode предназначены для изменения конфигураций Xcode, флагов компилятора и аналогичных параметров сборки. В отличие от Visual Studio, Xcode не позволяет выбирать определенные файлы библиотек на основе того, выбраны ли конфигурации сборки «отладка» или «релиз». Параметры qmake «отладка» и «релиз» управляют тем, какие файлы библиотек подключаются к исполняемому файлу.

В настоящее время невозможно установить файлы в настройках конфигурации Xcode из файла проекта Xcode, сгенерированного qmake. Способ связывания библиотек на этапе «Фреймворки и библиотеки» в системе сборки Xcode.

Кроме того, выбранная «Активная конфигурация сборки» хранится в файле .pbxuser, который генерируется Xcode при первом запуске, а не создается qmake.

Windows

Функции, специфичные для этой платформы, включают поддержку файлов ресурсов Windows (предоставленные или автоматически сгенерированные), создание файлов проектов Visual Studio и обработку файлов манифеста при развертывании приложений Qt, разработанных с помощью Visual Studio 2005 или более поздних версий.

Добавление файлов ресурсов Windows

В этом разделе описано, как обработать файл ресурса Windows с помощью qmake, чтобы он был связан с исполняемым файлом приложения (EXE) или динамической библиотекой (DLL). qmake может выборочно автоматически сгенерировать соответствующий заполненный файл ресурсов Windows.

Связанный файл ресурсов Windows может содержать множество элементов, к которым можно получить доступ из его EXE или DLL. Однако для доступа к связанным ресурсам независимым от платформы способом следует использовать систему ресурсов Qt. Но к некоторым стандартным элементам связанного файла ресурсов Windows имеет доступ сама Windows. Например, в проводнике Windows вкладке «Версия» свойств файла заполняется элементами ресурсов. Кроме того, значок программы EXE считывается из этих элементов. Поэтому рекомендуется, чтобы создаваемый Qt EXE или DLL для Windows использовал оба способа одновременно: связывать независимые от платформы ресурсы через систему ресурсов Qt и добавлять специфичные для Windows ресурсы через файл ресурсов Windows.

Как правило, скрипт определения ресурсов (.rc-файл) компилируется в файл ресурсов Windows. В рамках инструментальной цепочки Microsoft инструмент RC генерирует файл .res, который может быть связан с компоновщиком Microsoft с EXE или DLL. Инструментальная цепочка MinGW использует инструмент windres для генерации файла .o, который может быть связан с компоновщиком MinGW с EXE или DLL.

Необязательная автоматическая генерация соответствующего заполненного файла .rc qmake запускается установкой как минимум одной из системных переменных VERSION и RC_ICONS. Сгенерированный .rc-файл автоматически компилируется и связывается. Элементы, которые добавляются в файл .rc, определяются системными переменными QMAKE_TARGET_COMPANY, QMAKE_TARGET_DESCRIPTION, QMAKE_TARGET_COPYRIGHT, QMAKE_TARGET_PRODUCT, QMAKE_MANIFEST, RC_CODEPAGE, RC_ICONS, RC_LANG и VERSION.

Если этих элементов недостаточно, у qmake есть две системные переменные RC_FILE и RES_FILE, которые напрямую указывают на внешне созданный файл .rc или .res. Установив одну из этих переменных, указанный файл связывается с EXE или DLL.

Примечание: Генерация файла .rc qmake блокируется, если установлены RC_FILE или RES_FILE. В этом случае qmake не вносит никаких дальнейших изменений в данный файл .rc или файлы .res или .o; переменные, относящиеся к генерации файла .rc, не действуют.

Создание файлов проектов Visual Studio

В этом разделе описано, как импортировать существующий проект qmake в Visual Studio. qmake может принять файл проекта и создать проект Visual Studio, который содержит всю необходимую информацию, требуемую средой разработки. Это достигается путем установки шаблона проекта qmake либо на vcapp (для проектов приложений) или на vclib (для проектов библиотек).

Это также можно установить с помощью опции командной строки, например:

qmake -tp vc

Возможна рекурсивная генерация файлов .vcproj в подкаталогах и файла .sln в главном каталоге, набрав:

qmake -tp vc -r

Каждый раз, когда вы обновляете файл проекта, вам необходимо запустить qmake, чтобы сгенерировать обновленный проект Visual Studio.

Примечание: Если вы используете плагин Visual Studio, выберите Qt > Импортировать из файла .pro для импорта файлов .pro.

Файлы манифеста Visual Studio

При развертывании приложений Qt, созданных с помощью Visual Studio 2005 или более поздних версий, убедитесь, что файл манифеста, созданный при связывании приложения, обрабатывается правильно. Для проектов, генерирующих DLL, это делается автоматически.

Вложение манифеста для исполняемых файлов приложений можно отключить, присвоив следующее значение переменной CONFIG:

CONFIG -= embed_manifest_exe

Также вложение манифеста для DLL можно отключить, присвоив следующее значение переменной CONFIG:

CONFIG -= embed_manifest_dll

Подробное описание этого вопроса см. в руководстве по развертыванию для Windows.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qmake-platform-notes.html

Spec-Zone.ru

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