Редактирование: Qt:Документация 4.3.2/qmake-tutorial
Материал из Wiki.crossplatform.ru
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 4: | Строка 4: | ||
=Пособие по qmake<br />= | =Пособие по qmake<br />= | ||
- | Это пособие научит Вас пользоваться | + | Это пособие научит Вас пользоваться <tt>qmake</tt>. Мы рекомендуем прочитать руководство пользователя по <tt>qmake</tt> после завершения изучения этого материала |
<div id="starting-off-simple"></div> | <div id="starting-off-simple"></div> | ||
==Начать легко== | ==Начать легко== | ||
Строка 13: | Строка 13: | ||
*main.cpp | *main.cpp | ||
- | Вы найдете эти файлы в каталоге | + | Вы найдете эти файлы в каталоге <tt>examples/qmake/tutorial</tt> дистрибутива QT. Единственная вещь, которую Вы знаете об установке приложения, - это то, что оно написано на QT. Во-первых, используя текстовый редактор, создайте файл с названием <tt>hello.pro</tt> в каталоге <tt>examples/qmake/tutorial</tt>. Единственная вещь, которую необходимо сделать, - это добавить строки, которые говорят <tt>qmake</tt> о исходном файле и файле заголовке, являющиеся частью разрабатываемого проекта. |
- | Во-первых, мы добавим исходные файлы в файл проекта. Чтобы это сделать, нужно использовать переменную [[Qt:Документация 4.3.2/qmake-variable-reference#sources | SOURCES]]. Просто начните новую строку с | + | Во-первых, мы добавим исходные файлы в файл проекта. Чтобы это сделать, нужно использовать переменную [[Qt:Документация 4.3.2/qmake-variable-reference#sources | SOURCES]]. Просто начните новую строку с <tt>SOURCES +=</tt> и напишите 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> | ||
- | Конечное имя устанавливается автоматически; оно такое же, как и имя файла проекта, но с суффиксом, соответствующим платформе. Например, если файл проекта называется - | + | Конечное имя устанавливается автоматически; оно такое же, как и имя файла проекта, но с суффиксом, соответствующим платформе. Например, если файл проекта называется - <tt>hello.pro</tt>, результирующее имя будет - <tt>hello.exe</tt> для Windows и <tt>hello</tt> для 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 , нам необходимо поместить <tt>qt</tt> в строке <tt>CONFIG</tt>. Это нужно для того, чтобы <tt>qmake</tt> добавил релевантные библиотеки и обеспечил встроенные строки для <tt>moc</tt> и <tt>uic</tt>, включаемые в созданный Makefile. |
Законченный файл проекта должен выглядеть так: | Законченный файл проекта должен выглядеть так: | ||
Строка 38: | Строка 38: | ||
SOURCES += hello.cpp | SOURCES += hello.cpp | ||
SOURCES += main.cpp</source> | SOURCES += main.cpp</source> | ||
- | Теперь Вы можете использовать | + | Теперь Вы можете использовать <tt>qmake</tt> для создания Makefile Вашего приложения. В командной строке в каталоге с Вашим проектом напишите следующее: |
<source lang="cpp-qt"> qmake -o Makefile hello.pro</source> | <source lang="cpp-qt"> qmake -o Makefile hello.pro</source> | ||
- | Затем напишите | + | Затем напишите <tt>make</tt> или <tt>nmake</tt> в зависимости от компилятора, который Вы используете. |
- | Для пользователей Visual Studio, | + | Для пользователей Visual Studio, <tt>qmake</tt> также может создавать файлы <tt>.dsp</tt> или <tt>.vcproj</tt>, например: |
<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> | ||
==Отладка приложения== | ==Отладка приложения== | ||
- | Версия релиза приложения не может содержать какие-либо символы трассировки или другую отладочную информацию. Но во время разработки полезно создавать отладочную версию приложения, в которой содержится значимая информация. Этого легко добиться, добавив | + | Версия релиза приложения не может содержать какие-либо символы трассировки или другую отладочную информацию. Но во время разработки полезно создавать отладочную версию приложения, в которой содержится значимая информация. Этого легко добиться, добавив <tt>debug</tt> в переменную <tt>CONFIG</tt> в файле проекта. |
Например: | Например: | ||
Строка 52: | Строка 52: | ||
SOURCES += hello.cpp | SOURCES += hello.cpp | ||
SOURCES += main.cpp</source> | SOURCES += main.cpp</source> | ||
- | Используя | + | Используя <tt>qmake</tt> перед созданием Makefile, Вы будете получать полезную информацию о Вашем приложении во время запуска его в среде отладки. |
<div id="adding-platform-specific-source-files"></div> | <div id="adding-platform-specific-source-files"></div> | ||
==Добавление платформо-ориентированных исходных файлов== | ==Добавление платформо-ориентированных исходных файлов== | ||
- | Возможно, после нескольких часов программирования, Вы заходите сделать часть Вашего приложения, ориентированным на определенную платформу, и решите отделить код, зависимый от платформы. И так, теперь у Вас есть 2 новых файла, которые нужно включить в Ваш файл проекта: | + | Возможно, после нескольких часов программирования, Вы заходите сделать часть Вашего приложения, ориентированным на определенную платформу, и решите отделить код, зависимый от платформы. И так, теперь у Вас есть 2 новых файла, которые нужно включить в Ваш файл проекта: <tt>hellowin.cpp</tt> и <tt>hellounix.cpp</tt>. Мы добавим их в переменную <tt>SOURCES</tt>, так как оба файла будут помещены в Makefile. Все, что нам нужно сделать для этого, - это использовать область действия (scope), которая будет обрабатываться в зависимости от того, на какой платформе выполняется <tt>qmake</tt>. |
Простая область действия (scope), которая будет добавлена в файл, зависимый от платформы Windows, будет выглядеть так: | Простая область действия (scope), которая будет добавлена в файл, зависимый от платформы Windows, будет выглядеть так: | ||
Строка 61: | Строка 61: | ||
SOURCES += hellowin.cpp | SOURCES += hellowin.cpp | ||
}</source> | }</source> | ||
- | И так, если | + | И так, если <tt>qmake</tt> запущен для Windows, он добавит <tt>hellowin.cpp</tt> в список исходных файлов. Если <tt>qmake</tt> запущен для любой другой платформы, он просто будет игнорировать эти строки. Теперь все, что осталось сделать, - это создать область действия для файла, определенного для Unix. |
Когда Вы это сделаете, Ваш файл проекта должен выглядеть так: | Когда Вы это сделаете, Ваш файл проекта должен выглядеть так: | ||
Строка 74: | Строка 74: | ||
SOURCES += hellounix.cpp | SOURCES += hellounix.cpp | ||
}</source> | }</source> | ||
- | Используйте | + | Используйте <tt>qmake</tt> перед созданием 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(), можно остановить выполнение <tt>qmake</tt>. Это работает точно так же, как и область действия (scope). Просто переместите область действия условия в функцию. Проверка для файла <tt>main.cpp</tt> выглядит так: |
<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> | ||
- | Символ | + | Символ <tt>!</tt> используется для отрицания результата; например, <tt>exists( main.cpp )</tt> - истина, если файл отсутствует, и <tt>!exists( main.cpp )</tt> - истина, если файл не отсутствует. |
<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> | ||
- | Используйте | + | Используйте <tt>qmake</tt> перед созданием Makefile. Если Вы временно переименуете <tt>main.cpp</tt>, Вы увидите сообщение, и выполнение <tt>qmake</tt> остановится. |
<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]]() во время запуска приложения в командной строке. До тех пор пока Вы не выполните приложение с соответствующими настройками консоли, не увидите выходную информацию. Можно просто написать <tt>console</tt> в строке <tt>CONFIG</tt>, и Makefile под Windows будет иметь эти настройки. Предположим, мы хотим добавить строку <tt>CONFIG</tt> только в том случае, если мы запускаем под Windows и когда <tt>debug</tt> прописан в строке <tt>CONFIG</tt>. Эти требования используют две вложенные области действия (scope); просто создайте одну область действия (scope), затем создайте вторую внутри первой. Поместите код так, чтобы он выполнялся внутри последней области действия (scope), как здесь: |
<source lang="cpp-qt"> win32 { | <source lang="cpp-qt"> win32 { | ||
debug { | debug { | ||
Строка 121: | Строка 121: | ||
CONFIG += console | CONFIG += console | ||
}</source> | }</source> | ||
- | Совершенно верно! Только что Вы закончили изучать пособие по | + | Совершенно верно! Только что Вы закончили изучать пособие по <tt>qmake</tt> и готовы к написанию файлов проектов для разрабатываемых проектов. |
[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}} |