Пособие по qmakeЭто пособие научит вас пользоваться qmake. Мы рекомендуем прочитать руководство пользователя по qmake после завершения изучения этого материала. Начать легкоДопустим, что у вас уже закончена начальная реализация вашего приложения, и у вас уже созданы следующие файлы:
Вы найдете эти файлы в каталоге 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 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 и готовы к написанию файлов проектов для разрабатываемых проектов. |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |