Qt:Документация 4.3.2/qmake-tutorial

Материал из Wiki.crossplatform.ru

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{Qt4.3.2_header}} [Назад: Руководство по qmake ] [ [[Qt:Документация 4.3.2/qmake-manual | Содер...)
Строка 5: Строка 5:
=Пособие по qmake<br />=
=Пособие по qmake<br />=
Это пособие научит Вас пользоваться <tt>qmake</tt>. Мы рекомендуем прочитать руководство пользователя по <tt>qmake</tt> после завершения изучения этого материала
Это пособие научит Вас пользоваться <tt>qmake</tt>. Мы рекомендуем прочитать руководство пользователя по <tt>qmake</tt> после завершения изучения этого материала
-
 
+
<div id="starting-off-simple"></div>
==Начать легко==
==Начать легко==
Допустим, что у Вас уже закончена начальная реализация Вашего приложения, и у Вас уже созданы следующие файлы:
Допустим, что у Вас уже закончена начальная реализация Вашего приложения, и у Вас уже созданы следующие файлы:
Строка 43: Строка 43:
Для пользователей Visual Studio, <tt>qmake</tt> также может создавать файлы <tt>.dsp</tt> или <tt>.vcproj</tt>, например:
Для пользователей Visual Studio, <tt>qmake</tt> также может создавать файлы <tt>.dsp</tt> или <tt>.vcproj</tt>, например:
-
<source lang="cpp-qt"> qmake -tp vc -o hello.dsp hello.pro</source>  
+
<source lang="cpp-qt"> qmake -tp vc -o hello.dsp hello.pro</source> <div id="making-an-application-debuggable"></div>
==Отладка приложения==
==Отладка приложения==
Версия релиза приложения не может содержать какие-либо символы трассировки или другую отладочную информацию. Но во время разработки полезно создавать отладочную версию приложения, в которой содержится значимая информация. Этого легко добиться, добавив <tt>debug</tt> в переменную <tt>CONFIG</tt> в файле проекта.
Версия релиза приложения не может содержать какие-либо символы трассировки или другую отладочную информацию. Но во время разработки полезно создавать отладочную версию приложения, в которой содержится значимая информация. Этого легко добиться, добавив <tt>debug</tt> в переменную <tt>CONFIG</tt> в файле проекта.
Строка 53: Строка 53:
  SOURCES += main.cpp</source>  
  SOURCES += main.cpp</source>  
Используя <tt>qmake</tt> перед созданием Makefile, Вы будете получать полезную информацию о Вашем приложении во время запуска его в среде отладки.
Используя <tt>qmake</tt> перед созданием Makefile, Вы будете получать полезную информацию о Вашем приложении во время запуска его в среде отладки.
-
 
+
<div id="adding-platform-specific-source-files"></div>
==Добавление платформо-ориентированных исходных файлов==
==Добавление платформо-ориентированных исходных файлов==
Возможно, после нескольких часов программирования, Вы заходите сделать часть Вашего приложения, ориентированным на определенную платформу, и решите отделить код, зависимый от платформы. И так, теперь у Вас есть 2 новых файла, которые нужно включить в Ваш файл проекта: <tt>hellowin.cpp</tt> и <tt>hellounix.cpp</tt>. Мы добавим их в переменную <tt>SOURCES</tt>, так как оба файла будут помещены в Makefile. Все, что нам нужно сделать для этого, - это использовать область действия (scope), которая будет обрабатываться в зависимости от того, на какой платформе выполняется <tt>qmake</tt>.
Возможно, после нескольких часов программирования, Вы заходите сделать часть Вашего приложения, ориентированным на определенную платформу, и решите отделить код, зависимый от платформы. И так, теперь у Вас есть 2 новых файла, которые нужно включить в Ваш файл проекта: <tt>hellowin.cpp</tt> и <tt>hellounix.cpp</tt>. Мы добавим их в переменную <tt>SOURCES</tt>, так как оба файла будут помещены в Makefile. Все, что нам нужно сделать для этого, - это использовать область действия (scope), которая будет обрабатываться в зависимости от того, на какой платформе выполняется <tt>qmake</tt>.
Строка 75: Строка 75:
  }</source>  
  }</source>  
Используйте <tt>qmake</tt> перед созданием Makefile.
Используйте <tt>qmake</tt> перед созданием Makefile.
-
 
+
<div id="stopping-qmake-if-a-file-doesn-t-exist"></div>
==Остановка qmake в случае отсутствия файла==
==Остановка qmake в случае отсутствия файла==
Вам может понадобится не создавать Makefile, если определенный файл отсутствует.  Используя функцию exists(), мы можем проверить, отсутствует ли файл. С помощью функции error(), можно остановить выполнение <tt>qmake</tt>. Это работает точно так же, как и область действия (scope). Просто переместите область действия условия в функцию. Проверка для файла <tt>main.cpp</tt> выглядит так:
Вам может понадобится не создавать Makefile, если определенный файл отсутствует.  Используя функцию exists(), мы можем проверить, отсутствует ли файл. С помощью функции error(), можно остановить выполнение <tt>qmake</tt>. Это работает точно так же, как и область действия (scope). Просто переместите область действия условия в функцию. Проверка для файла <tt>main.cpp</tt> выглядит так:
Строка 96: Строка 96:
  }</source>  
  }</source>  
Используйте <tt>qmake</tt> перед созданием Makefile. Если Вы временно переименуете <tt>main.cpp</tt>, Вы увидите сообщение, и выполнение <tt>qmake</tt> остановится.
Используйте <tt>qmake</tt> перед созданием Makefile. Если Вы временно переименуете <tt>main.cpp</tt>, Вы увидите сообщение, и выполнение <tt>qmake</tt> остановится.
-
 
+
<div id="checking-for-more-than-one-condition"></div>
==Проверка нескольких условий==
==Проверка нескольких условий==
Предположим, Вы пользуетесь Windows и хотите видеть информацию с [[Qt:Документация 4.3.2/qtglobal#qDebug | qDebug]]() во время запуска приложения в командной строке. До тех пор пока Вы не выполните приложение с соответствующими настройками консоли, не увидите выходную информацию. Можно просто написать <tt>console</tt> в строке <tt>CONFIG</tt>, и Makefile под Windows будет иметь эти настройки. Предположим, мы хотим добавить строку <tt>CONFIG</tt> только в том случае, если мы запускаем под Windows и когда <tt>debug</tt> прописан в строке <tt>CONFIG</tt>.  Эти требования используют две вложенные области действия (scope); просто создайте одну область действия (scope), затем создайте вторую внутри первой. Поместите код так, чтобы он выполнялся внутри последней области действия (scope), как здесь:
Предположим, Вы пользуетесь Windows и хотите видеть информацию с [[Qt:Документация 4.3.2/qtglobal#qDebug | qDebug]]() во время запуска приложения в командной строке. До тех пор пока Вы не выполните приложение с соответствующими настройками консоли, не увидите выходную информацию. Можно просто написать <tt>console</tt> в строке <tt>CONFIG</tt>, и Makefile под Windows будет иметь эти настройки. Предположим, мы хотим добавить строку <tt>CONFIG</tt> только в том случае, если мы запускаем под Windows и когда <tt>debug</tt> прописан в строке <tt>CONFIG</tt>.  Эти требования используют две вложенные области действия (scope); просто создайте одну область действия (scope), затем создайте вторую внутри первой. Поместите код так, чтобы он выполнялся внутри последней области действия (scope), как здесь:
Строка 123: Строка 123:
Совершенно верно! Только что Вы закончили изучать пособие по <tt>qmake</tt> и готовы к написанию файлов проектов для разрабатываемых проектов.
Совершенно верно! Только что Вы закончили изучать пособие по <tt>qmake</tt> и готовы к написанию файлов проектов для разрабатываемых проектов.
-
[Назад: [[Qt:Документация 4.3.2/qmake-manual | Руководство по qmake]] ]  [ [[Qt:Документация 4.3.2/qmake-manual | Содержание]] ] [Далее: [[Qt:Документация 4.3.2/qmake-common-projects | Общие проекты qmake]] ]  
+
[Previous: [[Qt:Документация 4.3.2/qmake-manual | qmake Manual]] ]  [ [[Qt:Документация 4.3.2/qmake-manual | Contents]] ] [Next: [[Qt:Документация 4.3.2/qmake-common-projects | qmake Common Projects]] ]  
{{Qt4.3.2_footer}}
{{Qt4.3.2_footer}}

Версия 10:34, 6 ноября 2008

40px Внимание: Актуальная версия перевода документации находится здесь

__NOTOC__

Image:qt-logo.png

Главная · Все классы · Основные классы · Классы по группам · Модули · Функции

Image:trolltech-logo.png

[Назад: Руководство по 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, включаемые в созданный Makefile.

Законченный файл проекта должен выглядеть так:

 CONFIG += qt
 HEADERS += hello.h
 SOURCES += hello.cpp
 SOURCES += main.cpp

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

 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 перед созданием Makefile, Вы будете получать полезную информацию о Вашем приложении во время запуска его в среде отладки.

Добавление платформо-ориентированных исходных файлов

Возможно, после нескольких часов программирования, Вы заходите сделать часть Вашего приложения, ориентированным на определенную платформу, и решите отделить код, зависимый от платформы. И так, теперь у Вас есть 2 новых файла, которые нужно включить в Ваш файл проекта: hellowin.cpp и hellounix.cpp. Мы добавим их в переменную SOURCES, так как оба файла будут помещены в Makefile. Все, что нам нужно сделать для этого, - это использовать область действия (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 перед созданием Makefile.

Остановка qmake в случае отсутствия файла

Вам может понадобится не создавать Makefile, если определенный файл отсутствует. Используя функцию exists(), мы можем проверить, отсутствует ли файл. С помощью функции error(), можно остановить выполнение qmake. Это работает точно так же, как и область действия (scope). Просто переместите область действия условия в функцию. Проверка для файла 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 перед созданием Makefile. Если Вы временно переименуете main.cpp, Вы увидите сообщение, и выполнение qmake остановится.

Проверка нескольких условий

Предположим, Вы пользуетесь Windows и хотите видеть информацию с qDebug() во время запуска приложения в командной строке. До тех пор пока Вы не выполните приложение с соответствующими настройками консоли, не увидите выходную информацию. Можно просто написать console в строке CONFIG, и Makefile под Windows будет иметь эти настройки. Предположим, мы хотим добавить строку CONFIG только в том случае, если мы запускаем под Windows и когда debug прописан в строке CONFIG. Эти требования используют две вложенные области действия (scope); просто создайте одну область действия (scope), затем создайте вторую внутри первой. Поместите код так, чтобы он выполнялся внутри последней области действия (scope), как здесь:

 win32 {
     debug {
         CONFIG += console
     }
 }

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

 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 и готовы к написанию файлов проектов для разрабатываемых проектов.

[Previous: qmake Manual ] [ Contents ] [Next: qmake Common Projects ]


Copyright © 2007 Trolltech Trademarks
Qt 4.3.2