[Предыдущая: Руководство по qmake] [Содержание] [Следующая: Общие проекты qmake]
Пособие по qmake
Это пособие научит вас пользоваться qmake. Мы рекомендуем прочитать руководство пользователя по qmake после завершения изучения этого материала.
Начать легко
Допустим, что у вас уже закончена начальная реализация вашего приложения, и у вас уже созданы следующие файлы:
- hello.cpp
- hello.h
- main.cpp
Вы найдете эти файлы в каталоге examples/qmake/tutorial дистрибутива Qt. Единственная вещь, которую вы знаете об установке приложения, - это то, что оно написано на Qt. Во-первых, используя текстовый редактор, создайте файл с названием hello.pro в каталоге examples/qmake/tutorial. Первое, что вам необходимо сделать, - это добавить строки, которые сообщат qmake о файле с исходным кодом и заголовочном файле, являющихся частью разрабатываемого проекта.
Добавим сначала в файл проекта файлы с исходным кодом. Чтобы это сделать, нужно использовать переменную SOURCES. Просто начните новую строку с SOURCES += и напишите hello.cpp после нее. У вас должно получиться что-то наподобие этого:
SOURCES += hello.cpp
Мы повторяем эти действия для каждого файла с исходным кодом в проекте до тех пор, пока не получим следующее:
SOURCES += hello.cpp
SOURCES += main.cpp
Если вы предпочитаете использовать make-синтаксис, перечисляя все файлы за один шаг, вы можете использовать экранирование новой строки как показано здесь:
SOURCES = hello.cpp \
main.cpp
Теперь, когда исходные файлы перечислены в файле проекта, должны быть добавлены заголовочные файлы. Добавить их можно практически также, как и файлы с исходными кодами, за исключением имени используемой переменной - HEADERS.
Как только вы сделаете это, ваш файл проекта должен выглядеть так:
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
Конечное имя устанавливается автоматически; оно такое же, как и имя файла проекта, но с суффиксом, соответствующим платформе. Например, если файл проекта называется - hello.pro, целевым именем будет hello.exe для Windows и hello - для Unix. Если вы хотите использовать другое имя, вы можете установить его в файле проекта:
TARGET = helloworld
Последний шаг – установить переменную CONFIG. Так как это приложение Qt, нам необходимо поместить qt в строке CONFIG. Это нужно для того, чтобы qmake добавил связанные библиотеки и обеспечил встроенные строки для moc и uic, включаемые в создаваемый файл сборки.
Законченный файл проекта должен выглядеть так:
CONFIG += qt
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
Теперь вы можете использовать qmake для создания файла сборки вашего приложения. В командной строке в каталоге с вашим проектом напишите следующее:
qmake -o Makefile hello.pro
Затем напишите make или nmake, в зависимости от компилятора, который вы используете.
Для пользователей Visual Studio, qmake также может создавать файлы .dsp или .vcproj, например:
qmake -tp vc -o hello.dsp hello.pro
Отладка приложения
Версия релиза приложения не может содержать какие-либо символы трассировки или другую отладочную информацию. Но во время разработки полезно создавать отладочную версию приложения, в которой содержится вышеозначенная информация. Этого легко добиться, добавив debug в переменную CONFIG в файле проекта.
Например:
CONFIG += qt debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
Используя qmake перед созданием файла сборки, вы будете получать полезную информацию о вашем приложении во время запуска его в среде отладки.
Добавление платформо-зависимых исходных файлов
Возможно, после нескольких часов программирования, вы захотите сделать часть вашего приложения ориентированным на определенную платформу и решите отделить код, зависимый от платформы. Итак, теперь у вас есть 2 новых файла, которые нужно включить в ваш файл проекта:hellowin.cpp и hellounix.cpp. Мы не можем просто добавить их в переменную SOURCES, так как оба файла будут помещены в файл сборки. Поэтому нам нужно использовать область видимости (scope), которая будет обрабатываться в зависимости от того, на какой платформе выполняется qmake.
Простая область видимости (scope), которая будет добавлена в файл, зависимый от платформы Windows, будет выглядеть так:
win32 {
SOURCES += hellowin.cpp
}
Итак, если qmake запущен для Windows, он добавит hellowin.cpp в список исходных файлов. Если qmake запущен для любой другой платформы, он просто будет игнорировать эти строки. Теперь всё, что осталось сделать, - это создать область видимости для файла, определенного для Unix.
Когда вы это сделаете, ваш файл проекта должен выглядеть так:
CONFIG += qt debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
SOURCES += hellowin.cpp
}
unix {
SOURCES += hellounix.cpp
}
Используйте qmake как и раньше для создания файла сборки.
Остановка qmake в случае отсутствия файла
Вам может понадобится не создавать Makefile, если определенный файл отсутствует. Используя функцию exists(), мы можем проверить, существует ли файл. С помощью функции error(), можно остановить выполнение qmake. Это работает точно так же, как и область действия (scopes do). Просто замените условие области видимости на функцию. Проверка для файла main.cpp выглядит так:
!exists( main.cpp ) {
error( "No main.cpp file found" )
}
Символ ! используется для отрицания результата; например, exists( main.cpp ) - истина, если файл существует, и !exists( main.cpp ) - истина, если файл не существует.
CONFIG += qt debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
SOURCES += hellowin.cpp
}
unix {
SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
error( "No main.cpp file found" )
}
Используйте qmake как и раньше для создания файла сборки. Если вы временно переименуете main.cpp, вы увидите сообщение, и выполнение qmake остановится.
Проверка нескольких условий
Предположим, вы пользуетесь Windows и хотите видеть информацию с помощью qDebug() во время запуска приложения в командной строке. До тех пор, пока вы не выполните приложение с соответствующими настройками консоли, вы не увидите выходную информацию. Можно просто написать console в строке CONFIG, и файл сборки под Windows будет иметь эти настройки. Тем не менее, скажем что мы хотим добавить строку CONFIG, только если мы запускаем под Windows и когда debug уже прописан в строке CONFIG. Эти требования используют две вложенные области видимости; просто создайте одну область видимости, затем создайте вторую внутри первой. Поместите код так, чтобы он выполнялся внутри последней области видимости, как здесь:
win32 {
debug {
CONFIG += console
}
}
Вложенные области видимости могут применяться вместе, используя двоеточие, в результате конечный файл проекта выглядит так:
CONFIG += qt debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
SOURCES += hellowin.cpp
}
unix {
SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
error( "No main.cpp file found" )
}
win32:debug {
CONFIG += console
}
Совершенно верно! Только что вы закончили изучать пособие по qmake и готовы к написанию файлов проектов для разрабатываемых проектов.
[Предыдущая: Руководство по qmake] [Содержание] [Следующая: Общие проекты qmake]
|