Оглавление
Примечания для платформ qmakeМногие кросс-платформенные проекты могут обрабатываться базовыми конфигурационными средствами qmake'а. На некоторых платформах получения преимуществ от платформо-зависимых возможностей иногда полезно или даже необходимо. qmake известно о многих из этих возможностей, и к ним можно получить доступ через специальные переменные, которые имеют эффект только на платформах, к которым они относятся. Mac OS XВозможности, специфичные для этой платформы, включают в себя поддержку создания универсальных двоичных файлов, каркасов и пакетов. Бинарные пакеты и пакеты с исходными кодамиВерсия qmake, поставляемая в пакетах исходных кодов, конфигурируется слегка по-другому по сравнению с поставляемой в бинарных пакетах в которых использует разные спецификации функций. Пакет с исходными кодами обычно использует спецификацию macx-g++, бинарный пакет обычно конфигурируется для использования спецификации macx-xcode. Пользователи каждого пакета могут поменять эту конфигурацию запуская qmake с опцией -spec (для получения дополнительной информации смотрите Запуск qmake). Это позволяет, например, использовать qmake из бинарного пакета для создания Make-файла в каталоге проекта с помощью следующего вызова командной строки: qmake -spec macx-g++ Использование каркасов (Frameworks)qmake способен автоматически генерировать правила сборки для компоновки вместе с каркасами в стандартном каталоге каркасов, расположенном на Mac OS X в /Library/Frameworks/. Каталоги, отличающиеся от стандартного каталога каркасов, необходимо задать системе сборки, и достигается это добавлением опций компоновщика в переменную QMAKE_LFLAGS, как показано в следующем примере: QMAKE_LFLAGS += -F/path/to/framework/directory/ Сам каркас компонуется с добавлением опций -framework и именем каркаса в переменную LIBS: LIBS += -framework TheFramework Создание каркасов (Frameworks)Любая заданный проект библиотеки может быть сконфигурирован таким образом, что результирующий файл библиотеки помещается в каркас, готовый для развёртывания. Чтобы это сделать, настройте проект на использование шаблона 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. Для получения дополнительной информации о развёртывании библиотек и приложений смотрите Развёртывание приложения в Mac OS X. Создание универсальных бинарных файловДля создания универсального бинарного файла вашего приложения вам нужно использовать версию Qt, которая была сконфигурирована с опцией -universal. Поддерживаемые в бинарном файле архитектуры указываются в переменной CONFIG. Например, следующее присваивание заставит qmake сгенерировать правила сборки для создания универсального бинарного файла для архитектур PowerPC и x86: CONFIG += x86 ppc Кроме того, разработчикам, использующим платформу на основе PowerPC, нужно установить переменную QMAKE_MAC_SDK. Более подробно этот процесс обсуждается в руководстве по развёртыванию в Mac OS X. Создание и миграция проектов XcodeВ Mac OS X разработчики могут получить преимущество поддержки файлов проекта Xcode qmake'ом как описано в Qt присущая Mac OS X, запустив qmake для генерации проекта Xcode из имеющихся файлов проекта qmake. Например: qmake -spec macx-xcode project.pro Обратите внимание на то, что если проект позднее перемещается на диск, qmake должен быть запущен снова для обработки файла проекта и создания нового файла проекта Xcode. Поддержка двух целевых сборок одновременноВ настоящее время реализация этого невозможна, поскольку понятие Active Build Configurations XCode концептуально отличается от идеи целевых сборок qmake. Настройки Active Build Configurations XCode для модификации конфигураций xcode, флагов компилятора и подобных опций сборки. В отличие от Visual Studio XCode не позволяет выбранным отдельным файлам библиотеки, основанным на отладочной или релизной сборке, выбирать конфигурации. Отладочные и релизные настройки qmake управляют тем, какие файлы библиотеки будут скомпонованы в исполняемый файл. В настоящее время невозможно разместить в настройках конфигурации XCode файлы из сгенерированного qmake файла проекта xcode. Особенность компоновки библиотек в фазе "Frameworks & Libraries" в системе сборки XCode. Более того, выделенная "Active Build Configuration" сохраняется в файле .pbxuser, который генерируется при первом запуске xcode, не создается qmake. WindowsВозможности, специфичные для этой платформы, включают в себя поддержку создания файлов проекта Visual Studio и обработку файлов манифеста при развёртывании приложений Qt, разработанных с использованием Visual Studio 2005. Создание файлов проекта Visual StudioРазработчики, использующие Visual Studio для написания приложений Qt, могут использовать возможности интеграции с Visual Studio, предоставляемые в Коммерческом выпуске Qt, и могут не беспокоиться о том, как управлять зависимостями проекта. Однако, некоторым разработчикам может понадобиться импортировать существующий проект qmake в Visual Studio. qmake способен получить файл проекта и создать проект Visual Studio, который содержит всю необходимую информацию, требующуюся для среды разработки. Достигается это установкой qmake шаблона проекта равным или vcapp (для проектов приложений) или vclib (для проектов библиотек). Также это можно установить используя опцию командной строки, например: qmake -tp vc Можно рекурсивно сгенерировать файлы .vcproj в подкаталогах и файл .sln в главном каталоге, набрав: qmake -tp vc -r При обновлении вашего файла проекта вам необходимо каждый раз запускать qmake для генерации обновленного проекта Visual Studio. Замечание: Если вы используете Visual Studio Add-in, вы можете импортировать файлы .pro через пункт меню Qt->Import from .pro file. Файлы манифеста Visual Studio 2005При развёртывании приложений Qt, собранных с использованием Visual Studio 2005, необходимо убедиться, что файл манифеста, созданный при компоновке приложения, обработан правильно. Он обрабатывается автоматически для проектов, которые создают DLLки. Удаление манифеста, встроенного в исполняемые файлы приложения, можно выполнить с помощью следующего присваивания переменной CONFIG: CONFIG -= embed_manifest_exe Кроме того, манифест, встраиваемый в DLLки, можно удалить с помощью следующего присваивания переменной CONFIG: CONFIG -= embed_manifest_dll Подробнее это обсуждается в руководстве по развёртыванию в Windows. Платформа SymbianСредства, специфичные для этой платформы, включают в себя обработку статических данных, возможности, размер стека и кучи, опции, зависящие от компилятора, и уникальные идентификаторы приложения или библиотеки. Обработка статических данныхКогда приложение использует какие-либо статические данные, необходимо сообщить о них системе сборки. Это необходимо поскольку Symbian пытается сэкономить память если нет используемых статических данных. Для указания того, что желательна поддержка статических данных, добавьте следующую строку в файл проекта: TARGET.EPOCALLOWDLLDATA = 1 Значение по умолчанию равно 0. Размер стека и кучиНа платформе Symbian используются предварительно определенные размеры стеков и куч. Если приложение превысит один из этих лимитов, это может привести к фатальному сбою или неудачному выполнению его задачи. К фатальным сбоям, которые не имеют причины, часто может приводить недостаточный размер стека и/или кучи. Размер стека имеет максимальное значение, тогда как размер кучи имеет минимальное и максимальное значения, указываемые в байтах. Минимальное значение предотвращает запуск приложения при недоступности такого объема памяти. Минимальное и максимальное значения разделяются пробелом. Например: TARGET.EPOCHEAPSIZE = 10000 10000000 TARGET.EPOCSTACKSIZE = 0x8000 Значения по умолчанию зависят от версии используемого Symbian SDK, однако, набор инструментов Qt устанавливает его в максимально возможное значение и изменить его нельзя. Специфичные для компилятора опцииОсновные опции компилятора могут быть как обычно установлены с использованием QMAKE_CFLAGS и QMAKE_CXXFLAGS. Для того, чтобы установить опции, зависящие от компилятора, можно использовать QMAKE_CFLAGS.<компилятор> и QMAKE_CXXFLAGS.<компилятор>. <компилятор> может быть или CW для архитектуры WINSCW (эмулятор), или ARMCC для архитектуры ARMv5 (аппаратное обеспечение), или GCCE для архитектуры ARMv5 (аппаратное обеспечение). Вот пример: QMAKE_CXXFLAGS.CW += -O2 QMAKE_CXXFLAGS.ARMCC += -O0 Уникальные идентификаторыПриложения Symbian могут иметь уникальные идентификаторы, присоединенные к ним. Вот как их определяют в файле проекта: Имеется четыре типа поддерживаемых идентификаторов: UID2, UID3, SID и VID. Они указываются примерно так: TARGET.UID2 = 0x00000001 TARGET.UID3 = 0x00000002 TARGET.SID = 0x00000003 TARGET.VID = 0x00000004 Если SID не задан, его по умолчанию приравнивают значению UID3. Если UID3 не задан, qmake автоматически генерирует UID3, подходящий для разработки и отладки. Для приложений, которые выпущены, это значение можно указать вручную. Для получения информации о моделях баз данных Qt 4, также смотрите документ GUI работы с базами данных. По умолчанию SID и VID имеют пустые значения. Также имеется один UID1, но никакое приложение его не получит. UID2 имеет отдельные значения для разных типов файлов; например, для app/exe он всегда равен 0x100039CE. Набор инструментов установит это значение для наиболее часто встречаемых типов файлов, таких как EXE/APP и разделяемых библиотек DLL. За дополнительной информацией об уникальных идентификаторах и их значении для приложений Symbian, пожалуйста, обратитесь к странице UID Q&As (Symbian Signed) на Forum Nokia Wiki. ВозможностиВозможности определяют дополнительные привилегии для приложения, например, возможность составить список всех файлов в файловой системе. Возможности определяются в файле проекта примерно так: TARGET.CAPABILITY += AllFiles Также можно указать, какие возможности не нужны, указав первым ALL и затем перечислив нежелательные возможности с минусом перед ними, например так: TARGET.CAPABILITY = ALL -TCB -DRM -AllFiles За дополнительной информацией о возможностях, пожалуйста, обратитесь к документации Symbian SDK. |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |