QMAKE 3,1 (Qt 5.14.0 использование) Руководство пользователя 4-- создавать общие типы проектов

В этой главе описывается, как установить QMAKE файл проекта для проекта на основе Qt три общих типа: приложения, библиотеки и плагины. Хотя все типы проектов используют многие из тех же переменных, но каждые из типов конкретных проектов используют для настройки выходного файла в переменных проектах.

Здесь не вводит переменные конкретной платформы. Для получения дополнительной информации см развертывания Qt для Windows и MacOS в Qt- .

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

Шаблон приложения говорит QMAKE приложений поколения Makefile. С помощью этого шаблона можно указать тип приложения, добавив одну из следующих опций в определении переменной CONFIG:

опции описание
окна Это приложение представляет собой приложение с графическим интерфейсом для Windows.
приставка Только Application Template: Это приложение представляет собой консольное приложение для Windows.
прецедент Приложение автоматизированного тестирования .

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

  • Файл заголовка списка для приложения - HEADERS.
  • ИСТОЧНИКИ - список C ++ исходный файл приложения.
  • Список файлов UI приложения (созданные с помощью Qt Designer) - ФОРМА.
  • Исходный файл список Lex для приложения - LEXSOURCES.
  • YACCSOURCES - список Yacc исходный файл для приложения.
  • TARGET - имя исполняемого файла приложения. По умолчанию имя файла проекта. (Если есть расширение, автоматически добавляется).
  • DESTDIR - каталог исполняемого файла находится цель.
  • DEFINES - список других определений препроцессора, требуемых приложением.
  • INCLUDEPATH - содержит список всех других путей, необходимых для приложения.
  • DEPENDPATH - зависимость пути поиска приложения.
  • VPATH - поиск файлов при условии пути поиска.
  • DEF_FILE - Windows только: .def файл для связи приложений.

Вам нужно всего лишь использовать системные переменные с их значениями. Например, если у вас нет каких-либо дополнительных INCLUDEPATH, вам не требуется указывать путь. QMAKE добавит необходимое значение по умолчанию. Пример файла проекта может выглядеть следующим образом:

  TEMPLATES = app
  DESTDIR = c:/helloapp
  HEADERS += hello.h
  SOURCES += hello.cpp
  SOURCES += main.cpp
  DEFINES += USE_MY_STUFF
  CONFIG += 发布

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

Создание тестового случая

Проект призван служить в качестве тестовых случаев для выполнения автоматизированного проекта приложения тестирования. Под добавленного к переменным CONFIG TestCase значения, любое приложение может быть помечено как TestCase.

Для тестовых элементов, QMAKE будет вставлен в мишень инспекции Makefile, сгенерированной. Цель будет запустить приложение. Если тест завершается с кодом выхода равен 0, то тест считается принятым.

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

Вы можете настроить проверки, выполняемые цели некоторых переменных Makefile. Эти переменные:

переменная описание
ТЕСТ RUNNER Команда или оболочки фрагменты имеют тест перед каждой командой. Образцовый случай использования является «тайм-аут» сценарий, если сценарий не будет завершена в течение указанного времени, то испытание прекращается.
TESTARGS Другие параметры прикреплены к каждой команде тестирования. Например, чтобы передать дополнительные параметры для установки выходного файла и формат теста (например, -QTestLib поддержка -o имя файла, варианты формата) могут быть полезны.

Примечание: переменная должна быть установлена ​​при вызове сделать инструменты, а не устанавливая файл .pro. Большинство сделать инструменты непосредственно поддерживают переменную Makefile в командной строке:

  # Run tests through test-wrapper and use xunitxml output format.
  # In this example, test-wrapper is a fictional wrapper script which terminates
  # a test if it does not complete within the amount of seconds set by "--timeout".
  # The "-o result.xml,xunitxml" options are interpreted by QTestLib.
  make check TESTRUNNER="test-wrapper --timeout 120" TESTARGS="-o result.xml,xunitxml"

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

опции описание
insignificant_test Во время осмотра макияжа решений, тестирование будет игнорировать код выхода.

Письменный тест обычно QTest или TestCase, но вместо того, чтобы использовать требования CONFIG + = инспекционных TestCase. Единственным важным требованием является то, что тестовая программа с кодом выхода нулевого выхода на успех, ненулевым выход выход кода в случае отказа.

Создание библиотеки

Lib шаблон говорит QMAKE для создания Makefile для сборки библиотеки. При использовании этого шаблона, в дополнении к переменной системе поддержки шаблонов приложений, а также поддерживает переменную VERSION. Использование .pro переменного файла указать информацию о библиотеке.
При использовании Lib шаблон, вы можете добавить следующий параметр к переменной CONFIG для определения типа построенной библиотеки:

опции описание
длл Библиотека является разделяемой библиотеки (DLL).
staticlib Библиотека является статической библиотекой.
плагин Библиотека представляет собой плагин.

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

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

Библиотека имени файла назначения в зависимости от платформы. Например, на X11, MacOS и прошивкой, имя библиотеки будет иметь префикс Lib. В Windows есть префикс не добавляется к имени файла.

Создание плагинов

В предыдущем разделе, с помощью шаблона для создания плагина LIB. Это говорит QMAKE для создания сборки для проекта, файл будет находиться в форме, подходящей для каждой платформы (обычно в виде библиотек), чтобы построить пробку. Как и обычная библиотека, переменная VERSION используются для задания информации о плагином.

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

Создание Qt Designer плагин

Qt Designer плагин использовать определенный набор параметров конфигурации для создания этих параметров конфигурации в зависимости от того, как Qt сконфигурирован для вашей системы. Для удобства, эти параметры могут быть включены путем добавления дизайнера переменной QT. Например:

QT += 小部件设计器

Дополнительные примеры проекта на основе плагина, см примеры по Qt Designer .

Создать и установить в отладки и выпуска режиме

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

Построенный в двух режимах

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

  CONFIG += debug_and_release

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

Приведенный выше код в каждом режиме редактирования будет строить цели для обеспечения того , чтобы в результате мишень имеет другое имя. Укажите другое имя для цели , чтобы гарантировать , что цель не будет покрыта другой целью.
Когда QMake файлы проекта, он будет генерировать правила Makefile , чтобы строить проект в двух режимах. Он может быть вызван следующими способами:

make all

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

 CONFIG += build_all

Таким образом, вы можете использовать правило по умолчанию обработки Makefile:

 make

Установленный в двух режимах

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

 make install

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

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

Поведение по умолчанию выше фрагмент кода сборки в режиме отладки, изменить имя цели для сборки. Иначе пункт может быть добавлен в коде выше, чтобы выполнить ту же самую операцию на режиме выпуска. Целевое имя остается неизменным.

Опубликовано 19 оригинальных статей · вона похвала 0 · Просмотров 961

рекомендация

отblog.csdn.net/xuyouqiang1987/article/details/104076240