Qmake linux как пользоваться

Обновлено: 02.07.2024

Как я могу скопировать файл из моего проекта в выходной каталог с помощью qmake?

Я компилирую под Linux, но в будущем скомпилирую под Mac и Windows.

Вот пример из одного из наших проектов. Он показывает, как копировать файлы в DESTDIR для Windows и Linux.

Вы можете использовать функцию qmake для повторного использования:

Затем используйте его следующим образом:

Qt 5.6 добавил это как недокументированную функцию:

Придумайте имя для описания файлов, которые вы хотите скопировать:

Перечислите файлы, которые вы хотите скопировать, в его члене .files :

Укажите целевой путь в элементе .path :

При желании укажите базовый путь, который нужно отсечь от исходных путей:

Он в основном работает, выполняя те же действия, что и многие другие ответы здесь. См. file_copies.prf для получения информации о крови. подробности.

Интерфейс очень похож на интерфейс INSTALLS .

Если вы используете make install, вы можете использовать переменную INSTALLS в qmake. Вот пример:

Затем выполните make install .

Я обнаружил, что мне нужно изменить ответ, данный sje397. для Qt5 Beta1 вместе с QtCreator 2.5.2 . Я использую этот сценарий для копирования файлов qml в каталог назначения в качестве дополнительного шага после завершения сборки.

Мой файл .pro имеет следующий код

Обратите внимание, что я использую $$ PWD_WIN, чтобы указать полный путь к исходному файлу для команды копирования.

Создайте файл copy_files.prf в одном из путей, которые qmake использует для config features. Файл должен выглядеть так:

Как это работает

Первая часть определяет дополнительный компилятор, который будет считывать входные имена файлов из переменной COPY_FILES . Следующая часть определяет функцию, которую он будет использовать для синтеза имени файла вывода, соответствующего каждому входу. Затем мы определяем команды, используемые для вызова этого «компилятора», в зависимости от того, в какой оболочке мы находимся.

Затем мы определяем дополнительный целевой файл makefile copy_files.cookie , который зависит от цели compiler_copy_files_make_all . Последнее - это имя цели, которую qmake генерирует для дополнительного компилятора, который мы определили на первом шаге. Это означает, что когда цель copy_files.cookie построена, она вызовет дополнительный компилятор для копирования файлов.

Мы указываем команду, которая будет запускаться этой целью, которая будет touch файлов copy_files.cookie и compiler_copy_files_make_all . Прикоснувшись к этим файлам, мы гарантируем, что make не будет пытаться скопировать файлы снова, если их временные метки не являются более поздними, чем у затронутых файлов. Наконец, мы добавляем copy_files.cookie в список зависимостей цели make all .

Как его использовать

В файле .pro добавьте copy_files в переменную CONFIG :

Затем добавьте файлы в переменную COPY_FILES :

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

Второй принимает только один аргумент (один или несколько файлов) и предоставляет фиксированный путь. Практически то же самое, что и в ответе на ссылки.

Но теперь обратите внимание на разницу в вызовах

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

Сначала определите следующие две функции для поддержки Windows / Unix.

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

Во-первых, определите ниже (из фреймворка XD ) где-нибудь, например, внутри файла functions.prf :

И используйте его в своем проекте, например:

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

xd_functions.prf полный сценарий

Но если вам нужно что-то вроде copyFileLater(source, destination) , чтобы скопировать файлы только после завершения сборки, рассмотрите возможность использования кода ниже (который взят из фреймворка XD под лицензией Apache 2.0 ):

Qmake - это очень мощная система "meta-make", которую можно использовать для генерации make-файлов для различных компиляторов и платформ из одного и того же файла проекта qmake (.pro). Документация для qmake значительно улучшилась с Qt3, но все еще отсутствует некоторая информация. В этой статье все расскажем на примерах.

  1. 1. Вступление
  2. 2. Недокументированные переменные
  3. 3. Пользовательские инструменты
    1. 1. Примеры
    1. 1. Выборочная установка конфигурации
    1. 1. Функции потока программы
    2. 2. Замена функции

    Обратите внимание, что информация была написана для Qt4, но некоторые из них могут работать в Qt3. Кстати, должно работать в Qt5 или же рассмотреть для удаления.

    Недокументированные переменные

    Простейший вид контроля, который вы можете получить над сгенерированным make-файлом, - это использование встроенных переменных, предоставляемых qmake. Конечно, проблема в том, что многие из этих переменных не перечислены в документации по qmake. Но у вас есть удобный список их всех прямо здесь (наряду с богатым источником трюков и хаков, написанных Trolltech (в настоящее время Qt Company - прим. ред), тщательно добытые для вас). В вашем каталоге установки qmake есть подкаталог с именем "mkspecs". Он содержит определения для всех комбинаций платформы / компилятора, которые поддерживает qmake (обратите внимание, что не все они «формально» поддерживаются!) В разных точках есть каталоги с именем «features», там вы найдете код qmake для многих вещей, которые вы можете включить с помощью переменной CONFIG.

    Так что, если вы пытаетесь выяснить что-то вроде: «Как мне изменить имя компилятора, который используется в make-файле?» или "Как я могу изменить способ вызова файла-копии для 'make install'?" и тому подобное, в каталоге mkspecs вы должны искать имя переменной, которую нужно изменить.

    Вот несколько особенно полезных (начиная с v4.3.4), обнаруженных при исследовании источника qmake:

    • _ DATE_ - текущая дата и время. (V4.3.4)
    • _ FILE_ - текущее имя файла, которое анализирует qmake. (V4.3.4)
    • _ LINE_ - текущий номер строки, анализируемый qmake. (V4.3.4)
    • _ QMAKE_CACHE_ - путь к любому используемому файлу .qmake.cache. (V4.3.4)
    • DIR_SEPARATOR или QMAKE_DIR_SEP - символ прямой или обратной косой черты, в зависимости от платформы хоста.
    • IN_PWD - базовый каталог исходного дерева. (V4.3.4)
    • QMAKE_NOFORCE - опустить использование цели "FORCE".
    • QMAKE_utility - команда для утилиты, которая будет назначена макросу с именем утилита в сгенерированных файлах Makefile. Имена макросов утилит используются соответствующим образом в различных стандартных целях. Значение этих переменных можно изменить, чтобы указать различные служебные команды, а переменные - в форме $$ variable_name или $ (macro_name) - можно использовать при определении команд для QMAKE_EXTRA_TARGETS. Названия утилит:
      QMAKE_CHK_DIR_EXISTS
      • QMAKE_COPY
      • QMAKE_COPY_DIR
      • QMAKE_COPY_FILE
      • QMAKE_DEL_DIR
      • QMAKE_DEL_FILE
      • QMAKE_INSTALL_DIR
      • QMAKE_INSTALL_FILE
      • QMAKE_INSTALL_PROGRAM
      • QMAKE_LINK (используется для связывания исполняемых файлов)
      • QMAKE_LINK_SHLIB
      • QMAKE_MKDIR
      • QMAKE_MOVE
      • QMAKE_QMAKE
      • QMAKE_STRIP
      • QMAKE_SYMBOLIC_LINK (это назначено макросу SYMLINK)
      Пользовательские инструменты

      В документации по qmake в Qt4 кратко упоминается о возможности пользовательских «компиляторов», но для описания, к сожалению, не так много.

      Есть несколько специальных псевдопеременных, которые вы можете использовать внутри пользовательских компиляторов. Я говорю «псевдопеременные» по двум причинам: во-первых, они используют только один знак доллара; и во-вторых, они оцениваются позже, чем все, которые вы хотели бы использовать. По этой причине такие функции, как $$ replace (. ) и такие операторы, как

      =, не будут выполнять то, что должны, - они будут действовать так, как будто вы передаете им пустую переменную.

      Надеюсь, Trolltech (Qt Company) уже предоставили вам то, что вам нужно!

      • QMAKE_FILE_IN - это входное имя файла (ов), с указанием пути, если это предусмотрено, что компилятор обрабатывает,
      • QMAKE_FILE_OUT - содержимое переменной "compiler.output" для текущего значения $ , то есть текущего выходного файла,
      • QMAKE_FILE_IN_BASE (или QMAKE_FILE_BASE) - текущее имя входного файла без расширения,
      • QMAKE_FILE_IN_PATH (или QMAKE_FILE_PATH) - просто путь к текущему входному файлу,
      • QMAKE_FILE_OUT_BASE - текущее имя выходного файла без расширения,
      • QMAKE_FILE_OUT_PATH - просто путь к текущему выходному файлу,
      • QMAKE_FILE_EXT - расширение файла входного файла, включая точку.

      Самое простое определение пользовательского инструмента обычно выглядит примерно так:

      В этом примере выполняется запуск компилятора Microsoft MIDL для файла .ODL и создание пары .c и .h с информацией о хосте COM.

      Чтобы определить пользовательский инструмент, вы должны сначала выбрать имя для составной переменной (аналог структуры) для определения. В приведенном выше примере я выбрал «idl.c».

      Есть несколько свойств, которые могут быть включены в определение пользовательского инструмента:

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

      • combine (объединение) - вызвать компилятор со списком всех файлов в исходной переменной, а не один раз для каждого файла,
      • xplicit_dependencies - комментарий в источнике: "compiler.CONFIG + =xplicit_dependencies означает, что ТОЛЬКО compiler.depends может вызывать зависимости Makefile",
      • function_verify - см. также .verify_function выше,
      • ignore_no_exist - игнорировать (не обрабатывать) файлы в списке ввода, которые не существуют. Если эта функция не установлена, то выдается предупреждение, что входной файл все еще обрабатывается,
      • moc_verify - скорее всего гарантирует, что файл должен быть пропущен через препроцессор moc перед добавлением его в качестве цели moc.
      • no_dependencies - не делать генерацию зависимостей от файлов в исходной переменной,
      • no_link - файлы, которые создаются, не должны добавляться в OBJECTS - т.е. они не являются скомпилированным кодом, который должен быть связан,
      • target_predeps - скорее всего гарантирует, что пользовательский компилятор будет запущен первым в проекте,
      • verify (проверка) - не выявлено, что делает эта функция. Пользовательский компилятор никогда не вызывается, если он включен.

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

      Примеры

      Вот еще один, причем необычный, пример:

      Этот инструмент просто выводит содержимое переменной CXXFLAGS в файл с именем «compile.inp». Поскольку этот инструмент предназначен для создания файла с фиксированным именем, переменная, переданная в .input, содержит только «.» (текущий каталог), который всегда будет существовать (но нигде в правиле не используется). В этом правиле используется конструкция \ $ (foo), которая выводит расширение переменной формата GNU Make или NMAKE, в основном задерживая расширение переменной до тех пор, пока make или NMAKE не будут вызваны в сгенерированном make-файле.

      Способ компиляции разных файлов с разными CXXFLAGS (на основе qt / src / gui / painting / painting.pri):

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

      И, наконец, пример того, как вызывать пакетный файл с именем «PreBuildEvent.bat» каждый раз, когда вы компилируете свой код (протестировано в VisualStudio на основе qt-creator-enterprise-src-3.1.0 \ share \ qtcreator \ static.pro):

      Особенности конфигурации

      Есть несколько «переключателей», которые могут быть добавлены к переменной CONFIG, которые влияют на различное поведение qmake (обратите внимание, что это не включает функции CONFIG специфичные для пользовательских инструментов или установщиков):

      Также есть несколько значений, которые qmake будет динамически устанавливать в CONFIG, когда он записывает make-файл (а не при записи файлов проекта XCode), кроме основного Make-файла - то есть дополнительных вспомогательных make-файлов, когда установлены debug_and_release и/или static_and_shared:

      • build_pass - пишется вспомогательный make-файл (build_pass не устанавливается, когда пишется основной Make-файл).
      • Debug и DebugBuild - когда установлен debug_and_release и расширение имени файла makefile содержит «Debug».
      • Release и ReleaseBuild - когда установлен debug_and_release и расширение имени файла makefile содержит «Release».
      • Static и StaticBuild - когда установлен static_and_shared и расширение имени файла makefile содержит «Static».
      • Shared и SharedBuild - когда установлен static_and_shared и расширение имени файла makefile содержит «Shared».

      Когда используются debug_and_release и static_and_shared, все четыре комбинации Debug / Release и Static / Shared будут добавлены в дополнение к build_pass.

      Путем проверки этих значений в области build_pass можно настроить соответствующее содержимое make-файла. Например, если исходный код содержит отладочные выходные разделы, обусловленные определением макроса препроцессора DEBUG_SECTION, следующий синтаксис qmake позволяет определить значение макроса во время компиляции:

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

      Здесь ENABLED_SECTION - это символ, определенный в исходном коде для вывода раздела отладки, который должен быть включен. Необходимо указать цели shared-debug и / или static-debug, если static_and_shared был установлен в списке CONFIG.

      Кроме того, есть несколько значений с неопределенным значением:

      • explicitlib - значение не установлено,
      • no_delete_multiple_files - связанные с пользовательскими целями и "make clean",
      • no_fixpath - изменяет, как qmake изменяет пути к файлам, чтобы они были относительными (хотя точно не понятно как),
      • subdir_first_pro, cd_change_global - имеют отношение к проектам, использующим шаблон SUBDIRS.

      Еще одна интересная ценность для тех, кому надоели длинные журналы компиляции:

      • silent - созданный make-файл использует команду "echo" для вывода таких строк, как "compiling x.cpp", "moc x.h", "linking x.exe".

      Не используйте временный файл, содержащий флаги командной строки, например, для звонков. компилятор или компоновщик (@C: \ TEMP \ nm1234.tmp), но пишите все непосредственно в командную строку (специфично для nmake). Полезно для воспроизводимых журналов сборки:

      Другая интересная функциональность qmake, по крайней мере, начиная с Qt4, заключается в том, что он имеет (недокументированный) переключатель «config», который изменяет значение переменной CONFIG во время выполнения без изменения содержимого обрабатываемого файла. Это особенно полезно для замены целей сборки. Действительно, qmake не может генерировать другие цели сборки, кроме классических «release», «debug», «clean» и «install». Поскольку переменная CONFIG проверяется при разрешении областей, она позволяет создавать сложную структуру проекта, основанную на целях, которая остается удобочитаемой.

      Вышеупомянутый проект будет иметь 4 возможных выхода:

      • простое приложение с реализованным только «someclass»
      • то же самое приложение, но с добавленным someclass_one, генерация make-файла выполняется с помощью следующей команды:
      • то же самое приложение, но с добавлением someclass_two, генерация make-файла выполняется с помощью следующей команды:
      • то же самое приложение, но с добавленными необязательными классами, генерация make-файла выполняется с помощью следующей команды:

      Этот трюк будет использован Edyuk, чтобы позволить формату * .pro стать таким же мощным, как и известные стандарты, такие как * .cbp, используемый Code :: Blocks, и * .vcproj, используемый MSVC.

      Выборочная установка конфигурации

      Следующие недокументированные ключи могут быть добавлены в свойство .CONFIG пользовательской цели установки (то есть myInstallTarget.CONFIG). Цель - это пользовательская цель установки, если она была добавлена в список INSTALLS. Следует отметить, что «target» также считается пользовательской целью установки, если его свойство .files было явно определено в файле проекта.

      • no_check_exist - создает цель установки, даже если устанавливаемые файлы не существуют во время запуска qmake.

      Поправка: есть две формы, которые qmake может использовать для установки файлов: INSTALL_FILE и INSTALL_DIR. Когда существующий каталог устанавливается и no_check_exist не применяется, используется форма INSTALL_DIR. Однако, если каталог не существует при запуске qmake (например, подкаталог файлов документации, которые будут созданы во время выполнения make) и применяется no_check_exist, используется форма INSTALL_FILE, которая в системах Unix завершится ошибкой во время выполнения make. Чтобы предотвратить это, нельзя применять no_check_exist, и при запуске qmake должен быть создан пустой каталог с заданным именем. Для этого используйте функцию «system» qmake с соответствующей командой (это будет «mkdir -p» в системах Unix; просто mkdir в Windows) и путь к каталогу (путь должен иметь разделители, соответствующие системе хоста).

      SUBDIRS проекты

      SUBDIRS - это мощный метод разбиения проектов на более мелкие куски. Хотя на самом деле он намного мощнее, чем указано в документации.

      Существует три возможных значения в переменной SUBDIRS. Они могут быть каталогами, как указано в руководстве: в этом случае qmake будет искать файл .pro с тем же именем, что и каталог. Это также может быть файл .pro, с или без пути, и в этом случае он будет идти непосредственно к этому файлу. Или наиболее вероятно, это может быть переменная. В этом случае можно настроить поведение с помощью составных переменных, используя следующие ключевые слова:

      • subdir - путь к файлу .pro. Программа будет вести себя так, как будто вы просто указали каталог.
      • file - сам файл .pro. Программа будет вести себя так, как будто вы указали полный путь и имя файла.
      • depends - список других записей SUBDIRS, от которых зависит эта запись.
      • makefile - кажется, это устанавливает имя make-файла, который будет сгенерирован и вызван для этой цели.
      • target - это устанавливает цель в make-файле, который будет вызываться. (Вероятно, наиболее полезно в сочетании с опцией "makefile".)

      Это позволяет использовать make -j 4 в вашей причудливой четырехъядерной системе с проектом, который состоит из нескольких компонентов, которые зависят друг от друга. Чтобы немного упростить процесс, можно определить следующую тестовую функцию:

      Вы можете использовать его как:

      проект, который имеет:

      • несколько модулей, которые должны быть скомпилированы в первую очередь;
      • библиотека ядра для вещей, не связанных с графическим интерфейсом, которые зависят от некоторых модулей contrib;
      • библиотека GUI, которая зависит от библиотеки ядра и некоторых других модулей contrib;
      • испытательные стенды для ядра и gui libs;
      • основная программа, использующая библиотеки графического интерфейса и ядра;
      • несколько модулей, которые зависят только от ядра lib;
      • компилируется параллельно, где это возможно.
      Недокументированные режимы

      Помимо хорошо известных режимов "-project" и "-makefile", qmake поддерживает несколько других ключей, которые могут переводить его в разные режимы.

      • -prl превращает его в "prl generation mode". Не понятно, что это значит, но, безусловно, связано с файлами .prl, которые присутствуют в каталоге $ QTDIR / libs;
      • -set и -query превращает его в «properties mode». Затем qmake может дать вам значения некоторых специфических переменных Qt, которые жестко запрограммированы в нем во время сборки. Кроме того, выбранные пользователем свойства могут быть определены и опрошены. Эти значения могут быть получены приложением Qt через QLibraryInfo, но переключатель qmake позволяет сценариям оболочки знать о них.

      Значения встроенных свойств:

      • QMAKE_MKSPECS
      • QMAKE_VERSION
      • QT_INSTALL_BINS
      • QT_INSTALL_CONFIGURATION
      • QT_INSTALL_DATA
      • QT_INSTALL_DEMOS
      • QT_INSTALL_DOCS
      • QT_INSTALL_EXAMPLES
      • QT_INSTALL_HEADERS
      • QT_INSTALL_LIBS
      • QT_INSTALL_PLUGINS
      • QT_INSTALL_PREFIX
      • QT_INSTALL_QML
      • QT_INSTALL_TRANSLATIONS
      • QT_VERSION

      Например, если Qt 4.1.3 установлен в /usr/local/Trolltech/Qt-4.1.3 (по умолчанию):

      Определяемые пользователем свойства являются глобальными для системы - они не относятся к отдельным проектам. Под Win32 они хранятся в реестре по адресу HKEY_CURRENT_USER \ Software \ Trolltech \ QMake \ 2.00a.

      Вы также можете получить значения этих переменных, используя $$ [varname] (обратите внимание на использование квадратных скобок).

      Недокументированные функции

      Есть несколько очень удобных функций, которых нет в документации по Qt4. Некоторые из них не были добавлены до Qt 4.2, так что будьте осторожны.

      Функции потока программы

      Что касается qmake, то это тестовые функции, принадлежащие своему собственному разделу:

      Замена функции

      Эти функции возвращают значение:

      • files (glob) - возвращает список файлов, которые соответствуют указанному шаблону glob.
        На самом деле эта функция задокументирована как тестовая функция.
      Недокументированные тонкости

      Qmake - действительно мощный инструмент, если вы все еще не уверены в этом, посмотрите: области могут быть вложенными, но также объединяться с помощью логических операторов. Следующие строки эквивалентны:

      Подстановочный знак можно использовать практически везде: области видимости, значения, и т.д.

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

      В данном документе мы дадим основное представление о проектных файлах, описание некоторых основных особенностей qmake, и покажем, как использовать qmake в командной строке.

      Описание Проекта

      Описания проектов содержатся в проектных (.pro) файлах. Информация этих файлов используется qmake для генерирования Make-файлов, содержащих все необходимые команды для постройки проекта. Проектные файлы, обычно, содрержат список файлов ресурсов и заголовочных файлов, общую информацию о конфигурации и другие специфичные для приложения подробности, такие как список дополнительных библиотек для включения в проект и список используемых дополнительных путей.

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

      Полные примеры проектных файлов могут быть найдены в Программе Обучения qmake. Введение в создание проектных файлов может быть найдено в главе Проектные Файлы qmake, а более детальное описание содержится в Справочнике по qmake.

      Сборка Проекта

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

      qmake также может использоваться для генерирования проектных файлов. Полное описание опций командной строки qmake может быть найдено в главе Запуск qmake данного руководства.

      Использование Прекомпиляционных Заголовков

      В больших проектах можно воспользоваться преимуществами прекомпиляционных заголовочных файлов для ускорения процесса построения. Эта возможность подробно описана в главе Использование Прекомпиляционных Заголовков.

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

      В данном документе мы дадим основное представление о проектных файлах, описание некоторых основных особенностей qmake, и покажем, как использовать qmake в командной строке.

      Описание Проекта

      Описания проектов содержатся в проектных (.pro) файлах. Информация этих файлов используется qmake для генерирования Make-файлов, содержащих все необходимые команды для постройки проекта. Проектные файлы, обычно, содрержат список файлов ресурсов и заголовочных файлов, общую информацию о конфигурации и другие специфичные для приложения подробности, такие как список дополнительных библиотек для включения в проект и список используемых дополнительных путей.

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

      Полные примеры проектных файлов могут быть найдены в Программе Обучения qmake. Введение в создание проектных файлов может быть найдено в главе Проектные Файлы qmake, а более детальное описание содержится в Справочнике по qmake.

      Сборка Проекта

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

      qmake также может использоваться для генерирования проектных файлов. Полное описание опций командной строки qmake может быть найдено в главе Запуск qmake данного руководства.

      Использование Прекомпиляционных Заголовков

      В больших проектах можно воспользоваться преимуществами прекомпиляционных заголовочных файлов для ускорения процесса построения. Эта возможность подробно описана в главе Использование Прекомпиляционных Заголовков.

      Читайте также: