Qt:Документация 4.3.2/qmake-tutorial
Материал из Wiki.crossplatform.ru
Root (Обсуждение | вклад) |
FeelUs (Обсуждение | вклад) м (→Пособие по qmake) |
||
Строка 4: | Строка 4: | ||
=Пособие по qmake<br />= | =Пособие по qmake<br />= | ||
- | Это пособие научит Вас пользоваться | + | Это пособие научит Вас пользоваться ''qmake''. Мы рекомендуем прочитать руководство пользователя по ''qmake'' после завершения изучения этого материала |
<div id="starting-off-simple"></div> | <div id="starting-off-simple"></div> | ||
==Начать легко== | ==Начать легко== | ||
Строка 13: | Строка 13: | ||
*main.cpp | *main.cpp | ||
- | Вы найдете эти файлы в каталоге | + | Вы найдете эти файлы в каталоге ''examples/qmake/tutorial'' дистрибутива QT. Единственная вещь, которую Вы знаете об установке приложения, - это то, что оно написано на QT. Во-первых, используя текстовый редактор, создайте файл с названием ''hello.pro'' в каталоге ''examples/qmake/tutorial''. Единственная вещь, которую необходимо сделать, - это добавить строки, которые говорят ''qmake'' о исходном файле и файле заголовке, являющиеся частью разрабатываемого проекта. |
- | Во-первых, мы добавим исходные файлы в файл проекта. Чтобы это сделать, нужно использовать переменную [[Qt:Документация 4.3.2/qmake-variable-reference#sources | SOURCES]]. Просто начните новую строку с | + | Во-первых, мы добавим исходные файлы в файл проекта. Чтобы это сделать, нужно использовать переменную [[Qt:Документация 4.3.2/qmake-variable-reference#sources | SOURCES]]. Просто начните новую строку с ''SOURCES +='' и напишите hello.cpp после нее. У Вас должно получиться что-то наподобие этого: |
<source lang="cpp-qt"> SOURCES += hello.cpp</source> | <source lang="cpp-qt"> SOURCES += hello.cpp</source> | ||
Мы повторим эти действия для каждого исходного файла в проекте, в итоге мы получим следующее: | Мы повторим эти действия для каждого исходного файла в проекте, в итоге мы получим следующее: | ||
Строка 29: | Строка 29: | ||
SOURCES += hello.cpp | SOURCES += hello.cpp | ||
SOURCES += main.cpp</source> | SOURCES += main.cpp</source> | ||
- | Конечное имя устанавливается автоматически; оно такое же, как и имя файла проекта, но с суффиксом, соответствующим платформе. Например, если файл проекта называется - | + | Конечное имя устанавливается автоматически; оно такое же, как и имя файла проекта, но с суффиксом, соответствующим платформе. Например, если файл проекта называется - ''hello.pro'', результирующее имя будет - ''hello.exe'' для Windows и ''hello'' для Unix. Если Вы хотите использовать другое имя, Вы можете установить его в файле проекта: |
<source lang="cpp-qt"> TARGET = helloworld</source> | <source lang="cpp-qt"> TARGET = helloworld</source> | ||
- | Последний шаг – установить переменную [[Qt:Документация 4.3.2/qmake-variable-reference#config | CONFIG]]. Так как это приложение QT , нам необходимо поместить | + | Последний шаг – установить переменную [[Qt:Документация 4.3.2/qmake-variable-reference#config | CONFIG]]. Так как это приложение QT , нам необходимо поместить ''qt'' в строке ''CONFIG''. Это нужно для того, чтобы ''qmake'' добавил релевантные библиотеки и обеспечил встроенные строки для ''moc'' и ''uic'', включаемые в созданный Makefile. |
Законченный файл проекта должен выглядеть так: | Законченный файл проекта должен выглядеть так: | ||
Строка 38: | Строка 38: | ||
SOURCES += hello.cpp | SOURCES += hello.cpp | ||
SOURCES += main.cpp</source> | SOURCES += main.cpp</source> | ||
- | Теперь Вы можете использовать | + | Теперь Вы можете использовать ''qmake'' для создания Makefile Вашего приложения. В командной строке в каталоге с Вашим проектом напишите следующее: |
<source lang="cpp-qt"> qmake -o Makefile hello.pro</source> | <source lang="cpp-qt"> qmake -o Makefile hello.pro</source> | ||
- | Затем напишите | + | Затем напишите ''make'' или ''nmake'' в зависимости от компилятора, который Вы используете. |
- | Для пользователей Visual Studio, | + | Для пользователей Visual Studio, ''qmake'' также может создавать файлы ''.dsp'' или ''.vcproj'', например: |
<source lang="cpp-qt"> qmake -tp vc -o hello.dsp hello.pro</source> <div id="making-an-application-debuggable"></div> | <source lang="cpp-qt"> qmake -tp vc -o hello.dsp hello.pro</source> <div id="making-an-application-debuggable"></div> | ||
==Отладка приложения== | ==Отладка приложения== | ||
- | Версия релиза приложения не может содержать какие-либо символы трассировки или другую отладочную информацию. Но во время разработки полезно создавать отладочную версию приложения, в которой содержится значимая информация. Этого легко добиться, добавив | + | Версия релиза приложения не может содержать какие-либо символы трассировки или другую отладочную информацию. Но во время разработки полезно создавать отладочную версию приложения, в которой содержится значимая информация. Этого легко добиться, добавив ''debug'' в переменную ''CONFIG'' в файле проекта. |
Например: | Например: | ||
Строка 52: | Строка 52: | ||
SOURCES += hello.cpp | SOURCES += hello.cpp | ||
SOURCES += main.cpp</source> | SOURCES += main.cpp</source> | ||
- | Используя | + | Используя ''qmake'' перед созданием Makefile, Вы будете получать полезную информацию о Вашем приложении во время запуска его в среде отладки. |
<div id="adding-platform-specific-source-files"></div> | <div id="adding-platform-specific-source-files"></div> | ||
==Добавление платформо-ориентированных исходных файлов== | ==Добавление платформо-ориентированных исходных файлов== | ||
- | Возможно, после нескольких часов программирования, Вы заходите сделать часть Вашего приложения, ориентированным на определенную платформу, и решите отделить код, зависимый от платформы. И так, теперь у Вас есть 2 новых файла, которые нужно включить в Ваш файл проекта: | + | Возможно, после нескольких часов программирования, Вы заходите сделать часть Вашего приложения, ориентированным на определенную платформу, и решите отделить код, зависимый от платформы. И так, теперь у Вас есть 2 новых файла, которые нужно включить в Ваш файл проекта: ''hellowin.cpp'' и ''hellounix.cpp''. Мы добавим их в переменную ''SOURCES'', так как оба файла будут помещены в Makefile. Все, что нам нужно сделать для этого, - это использовать область действия (scope), которая будет обрабатываться в зависимости от того, на какой платформе выполняется ''qmake''. |
Простая область действия (scope), которая будет добавлена в файл, зависимый от платформы Windows, будет выглядеть так: | Простая область действия (scope), которая будет добавлена в файл, зависимый от платформы Windows, будет выглядеть так: | ||
Строка 61: | Строка 61: | ||
SOURCES += hellowin.cpp | SOURCES += hellowin.cpp | ||
}</source> | }</source> | ||
- | И так, если | + | И так, если ''qmake'' запущен для Windows, он добавит ''hellowin.cpp'' в список исходных файлов. Если ''qmake'' запущен для любой другой платформы, он просто будет игнорировать эти строки. Теперь все, что осталось сделать, - это создать область действия для файла, определенного для Unix. |
Когда Вы это сделаете, Ваш файл проекта должен выглядеть так: | Когда Вы это сделаете, Ваш файл проекта должен выглядеть так: | ||
Строка 74: | Строка 74: | ||
SOURCES += hellounix.cpp | SOURCES += hellounix.cpp | ||
}</source> | }</source> | ||
- | Используйте | + | Используйте ''qmake'' перед созданием Makefile. |
<div id="stopping-qmake-if-a-file-doesn-t-exist"></div> | <div id="stopping-qmake-if-a-file-doesn-t-exist"></div> | ||
==Остановка qmake в случае отсутствия файла== | ==Остановка qmake в случае отсутствия файла== | ||
- | Вам может понадобится не создавать Makefile, если определенный файл отсутствует. Используя функцию exists(), мы можем проверить, отсутствует ли файл. С помощью функции error(), можно остановить выполнение | + | Вам может понадобится не создавать Makefile, если определенный файл отсутствует. Используя функцию exists(), мы можем проверить, отсутствует ли файл. С помощью функции error(), можно остановить выполнение ''qmake''. Это работает точно так же, как и область действия (scope). Просто переместите область действия условия в функцию. Проверка для файла ''main.cpp'' выглядит так: |
<source lang="cpp-qt"> !exists( main.cpp ) { | <source lang="cpp-qt"> !exists( main.cpp ) { | ||
error( "No main.cpp file found" ) | error( "No main.cpp file found" ) | ||
}</source> | }</source> | ||
- | Символ | + | Символ ''!'' используется для отрицания результата; например, ''exists( main.cpp )'' - истина, если файл отсутствует, и ''!exists( main.cpp )'' - истина, если файл не отсутствует. |
<source lang="cpp-qt"> CONFIG += qt debug | <source lang="cpp-qt"> CONFIG += qt debug | ||
HEADERS += hello.h | HEADERS += hello.h | ||
Строка 95: | Строка 95: | ||
error( "No main.cpp file found" ) | error( "No main.cpp file found" ) | ||
}</source> | }</source> | ||
- | Используйте | + | Используйте ''qmake'' перед созданием Makefile. Если Вы временно переименуете ''main.cpp'', Вы увидите сообщение, и выполнение ''qmake'' остановится. |
<div id="checking-for-more-than-one-condition"></div> | <div id="checking-for-more-than-one-condition"></div> | ||
==Проверка нескольких условий== | ==Проверка нескольких условий== | ||
- | Предположим, Вы пользуетесь Windows и хотите видеть информацию с [[Qt:Документация 4.3.2/qtglobal#qDebug | qDebug]]() во время запуска приложения в командной строке. До тех пор пока Вы не выполните приложение с соответствующими настройками консоли, не увидите выходную информацию. Можно просто написать | + | Предположим, Вы пользуетесь Windows и хотите видеть информацию с [[Qt:Документация 4.3.2/qtglobal#qDebug | qDebug]]() во время запуска приложения в командной строке. До тех пор пока Вы не выполните приложение с соответствующими настройками консоли, не увидите выходную информацию. Можно просто написать ''console'' в строке ''CONFIG'', и Makefile под Windows будет иметь эти настройки. Предположим, мы хотим добавить строку ''CONFIG'' только в том случае, если мы запускаем под Windows и когда ''debug'' прописан в строке ''CONFIG''. Эти требования используют две вложенные области действия (scope); просто создайте одну область действия (scope), затем создайте вторую внутри первой. Поместите код так, чтобы он выполнялся внутри последней области действия (scope), как здесь: |
<source lang="cpp-qt"> win32 { | <source lang="cpp-qt"> win32 { | ||
debug { | debug { | ||
Строка 121: | Строка 121: | ||
CONFIG += console | CONFIG += console | ||
}</source> | }</source> | ||
- | Совершенно верно! Только что Вы закончили изучать пособие по | + | Совершенно верно! Только что Вы закончили изучать пособие по ''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]] ] | [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}} |
Текущая версия на 06:41, 12 августа 2013
Внимание: Актуальная версия перевода документации находится здесь |
__NOTOC__
Главная · Все классы · Основные классы · Классы по группам · Модули · Функции |
[Назад: Руководство по 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
|