qmake- это утилита от Trolltech, которая помогает облегчить процесс сборки приложения на разных платформах. qmake – автоматические генерирует мейк-файлы основываясь на информации в файлах проекта(*.pro). Эта программа распространяется вместе со всем комплектом Qt.
Краткое руководствоДопустим вы сделали ваше приложение, состоящие из следующих файлов:
hello.cpp
hello.h
main.cpp
Дальше вам нужно создать файл с расширением .pro, пусть это будет “hello.pro”. Pro-файлы представляют из себя текстовые файлы в которых описаны инструкции необходимые для сборки приложения. Первое что нам нужно сделать, добавить строчку, которая скажет qmake о файлах исходного кода вашей программы. Для добавления cpp-файла необходимо использовать переменную SOURCES. Просто напишите строчку с текстом “SOURCES += hello.cpp”, таким образов вы добавите в проект файл hello.cpp. Это нужно сделать для каждого файла в проекте:
SOURCES += hello.cpp SOURCES += main.cpp
|
или так:
SOURCES = hello.cpp \ main.cpp
|
Теперь когда файлы реализации добавлены, нужно добавить файлы заголовков. Делается похожим образом, только с помощью переменной HEADERS. В итоге в файле проекта будет следующее:
HEADERS += hello.h SOURCES += hello.cpp SOURCES += main.cpp
|
Имя и суффикс скомпилированного файла выберется автоматически, в зависимости от платформы. Если файл называется hello.pro, результатом будет hello.exe на Windows и hello в Unix. При желании задать конкретное имя, используйте переменную TARGET:
TARGET = helloworld
В завершение необходимо установить переменную CONFIG. Так как это Qt приложение, то необходимо что бы были подключены qt библиотеки и так же сгенерированы строчки для moc и uic компиляторов.
В результате файл примет вид:
CONFIG += qt HEADERS += hello.h SOURCES += hello.cpp SOURCES += main.cpp
|
Теперь может воспользоваться qmake для генерации Makefile. Это делается вызовом в командной строке, в паке проекта следующей команды:
qmake -o Makefile hello.pro
Результатом выполнения будет появление Makefile в папке проекта, теперь воспользовавшись make-утилитой можете собрать проект.
Для добавления отладочной информации в бинарный файл, можно использовать следующее:
В процессе разработки может случится так, что вы напишите платформенно зависимый код в двух файлах hellowin.cpp и hellounix.cpp, конечно можно добавить оба фала, но нам необходимо, что бы в зависимости от платформы qmake выбирал какой из них добавлять. Для этого используется платформенно зависимые секции. Для платформы Windows это будет выглядеть так:
win32 { SOURCES += hellowin.cpp }
|
Теперь если qmake запущен под Windows, он будет учитывать этот блок, а если на другой платформе, то просто проигнорирует. Такой вид примет файл написанный под две платформы:
CONFIG += qt debug HEADERS += hello.h SOURCES += hello.cpp SOURCES += main.cpp
win32{ SOURCES += hellowin.cpp } unix{ SOURCES += hellounix.cpp }
|
Можно прервать генерацию Makefile, если какого фала не хватает. Проверить наличие файла можно с помощью функции exists(), а прервать выполнение qmake используя error().
Например так:
!exists( main.cpp ) { error( "No main.cpp file found" ) }
|