Qt:Документация 4.3.2/qmake-common-projects

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск
40px Внимание: Актуальная версия перевода документации находится здесь

__NOTOC__

Image:qt-logo.png

Главная · Все классы · Основные классы · Классы по группам · Модули · Функции

Image:trolltech-logo.png

[Предыдущая: Пособие по qmake ] [ Содержание ] [Следующая: Использование qmake ]

Содержание

Общие проекты qmake

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

мы ссылаемся на документ Развёртывание Qt приложений для получения информации о таких вопросах, как собирать универсальные двоичные файлы для Mac OS X и управление в Visual Studio manifest-файлами.

Построение приложения

Построение приложения Шаблон app

Шаблон app показывает qmake, как создавать файл сборки, по которому будет создано приложение. С этим шаблоном тип приложения может быть определён одной из опций CONFIG:


Опция Описание
windows GUI приложение Windows.
console Только app шаблон: консоль Windows.

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

  • HEADERS - список всех файлов заголовков приложения.
  • SOURCES - список всех исходных файлов приложения.
  • FORMS - список всех .ui файлов (создаются при использовании Qt Designer) приложения.
  • LEXSOURCES - список всех lex исходных файлов приложения.
  • YACCSOURCES - список всех исходных файлов приложения для генерации синтаксических анализаторов.
  • TARGET - имя исполняемого файла приложения. По умолчанию, имя файла проекта. (Расширение, если оно есть, добавляется автоматически).
  • DESTDIR - каталог, в который помещается выполняемый файл.
  • DEFINES - список всех дополнительных предоперационных определений, необходимых для приложения.
  • INCLUDEPATH - список всех дополнительных включаемых директорий, необходимых для приложения.
  • DEPENDPATH - зависимый путь поиска для приложения .
  • VPATH - путь для поиска поставляемых файлов.
  • DEF_FILE - только для Windows: .def файл, который присоединяется к приложению.
  • RC_FILE - только для Windows: файл ресурса для приложения.
  • RES_FILE - только для Windows: файл ресурса, который присоединяется к приложению.

Вам нужно использовать только те системные переменные, для которых у Вас есть значения. Например, если у Вас нет никаких данных для INCLUDEPATHs, то Вы не должны определять её, qmake добавит значения по умолчанию для необходимых переменных. Например, файл проекта может выглядеть так:

 TEMPLATE = app
 DESTDIR  = c:/helloapp
 HEADERS += hello.h
 SOURCES += hello.cpp
 SOURCES += main.cpp
 DEFINES += QT_DLL
 CONFIG  += qt warn_on release

Для позиций, которые имеют одно значение, например, шаблон или предопределение директории, мы используем "=". Но для позиций, которые имеют несколько значений, мы используем "+=", чтобы добавить (add) значение к уже имеющимся позициям. Используя замену "=", значение позиции будет новым, например, если мы написали DEFINES=QT_DLL, все другие определения будут удалены.

Построение библиотеки

Шаблон lib

Шаблон lib говорит qmake создать файл сборки, который скомпонует библиотеку. Во время использования этого шаблона, в дополнение к системным переменным, упомянутым выше, для шаблона app поддерживается переменная VERSION. Вы можете использовать эти переменные в вашем .pro файле для определения информации о библиотеке.

Во время использования шаблона lib, следующие опции могут быть добавлены к переменной CONFIG для определения типа получаемой библиотеки:


Опция Описание
dll общая библиотека (dll).
staticlib статическая библиотека.
plugin дополнительный программный модуль; это так же доступно при выборе опции dll.
  • VERSION - Номер версии конечной библиотеки, например, 2.3.1.

Построение дополнительного программного модуля

Дополнительные программные модули (plugin) создаются, используя шаблон lib, как описано в предыдущем разделе. qmake создает файл сборки для проекта, который будет скомпонован, как дополнительный программный модуль (plugin) в подходящей форме для каждой платформы, обычно в форме библиотеки. As with ordinary libraries, the VERSION variable is used to specify information about the plugin.

  • VERSION - Номер версии конечной библиотеки, например, 2.3.1.

Построение дополнительного программного модуля в Qt Designer

Дополнительные программные модули (plugin) в Qt Designer компонуются с использованием определеного набора установок конфигурации, которые зависят от метода, которым скомпонован Qt для Вашей системы. Для удобства эти установки могут быть задействованы добавлением designer к переменной проекта CONFIG. Пример:

 CONFIG      += designer plugin debug_and_release

Смотрите Примеры Qt Designer для получения большего количества проектов, основанных на дополнительных программных модулях (plugin).

Построение и установка в режимах Debug и Release

Иногда необходимо скомпоновать проекты в обоих режимах, отладки и релиза. Хотя переменная CONFIG может поддерживать обе опции, debug и release, опция debug аннулирует опцию release.

Построение в обоих режимах

Чтобы проект был скомпонован в обоих режимах, вы должны добавить опцию debug_and_release в определение вашего проекта для строки CONFIG:

 CONFIG += debug_and_release
 
 CONFIG(debug, debug|release) {
     TARGET = debug_binary
 } else {
     TARGET = release_binary
 }

Область действия (scope) выше отделяет от изменений скомпонованный результат в каждом режиме, обеспечивая результирующие файлы разными именами. Обеспечивая файлы разными именами, мы тем самым гарантируем, что они не будут перекрывать друг друга.

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

 make all

Опция build_all может быть добавлена в переменную CONFIG в файле проекта для обеспечения того, что проект будет скомпонован в обоих режимах по умолчанию:

 CONFIG += build_all

Это позволяет обработать файл сборки, используя правило по умолчанию:

 make

Установка в обоих режимах

Опция build_all также обеспечивает, что обе версии результата будут установлены, когда это будет затребовано правилом инсталляции:

 make install

Возможно, изменять имена скомпонованных результатов в зависимости от целевой платформы. Например, библиотека или дополнительный программный модуль могут быть названы, используя разные условные обозначения для платформ Windows и Unix:

 CONFIG(debug, debug|release) {
     mac: TARGET = $$join(TARGET,,,_debug)
     win32: TARGET = $$join(TARGET,,d)
 }

Свойства по умолчанию, в куске кода выше, изменяют имя, используемое для построения результата, когда процесс компоновки происходит в режиме отладки. Оператор else может быть добавлен в область действия (scope), чтобы выполнить тоже самое для режима релиза.

[Предыдущая: Пособие по qmake ] [ Содержание ] [Следующая: Использование qmake ]



Copyright © 2007 Trolltech Trademarks
Qt 4.3.2