Здравствуйте, гость ( Вход | Регистрация )
Fedcomp | Дата 24.10.2010, 17:06 |
В консоли скомпилился ... можно ли какой либо простой пример, чтобы проверить отрабатывается ли qmake при компиле? |
|
alex977 | Дата 24.10.2010, 14:33 |
Простейший пример. hello.cpp:
hello.pro:
|
|
Fedcomp | Дата 24.10.2010, 14:00 |
Можно пример самого простого приложения на Qt? и хотелось бы узнать как компилировать вручную этот проект. | |
Litkevich Yuriy | Дата 24.10.2010, 13:39 |
Прочитай тут, проверь pro-файл | |
Fedcomp | Дата 24.10.2010, 13:16 |
Дело сдвинулось, нашел ваш пост по этому поводу http://www.forum.crossplatform.ru/index.ph...post&p=8828 Действительно у меня стоял борландовский C++, убрал его из переменных сред подключился mingw (на самом деле не подключился, я скопировал mingw32-make.exe в файл с названием make.exe, теперь из командной строки запускается как и положено mingw) Поидее теперь qmake должен работать нормально. Значит проблема не в этом. Дело в том что я пытаюсь пробный проект скомпилить, сделал форму в Qt creator'е, и пытаюсь её подсоединить к проекту. Есть main.cpp
Есть forms/mainform/mainfrm.h
Есть forms/mainform/mainfrm.cpp
При компиляции получаю ошибку main.cpp|12|error: aggregate 'Ui::mainfrm ui' has incomplete type and cannot be defined| Кстати говоря #include "ui_mainfrm.h" не создается почему то ... |
|
Litkevich Yuriy | Дата 24.10.2010, 12:03 |
Т.е достаточно сделать Makefile с помощью QT и заставить кодеблоки юзать этот мейкфайл? да.и при этом qmake при необходимости будет запускаться сам, я правильно все понял? Как я понял компилятор не знает что делать с FORCE не компилятор а программа makeЯ не знаю, что делает CodeBlocks, нужно просто скомандовать make - будет собирать и релиз и отладку, но может перетереть предыдущий вариант (например релизный), т.к. зависит от настроек проекта или make debug - для сборки отладочной версии приложения или make release - для сборки релизной версии приложения |
|
Fedcomp | Дата 24.10.2010, 11:38 |
Т.е достаточно сделать Makefile с помощью QT и заставить кодеблоки юзать этот мейкфайл? и при этом qmake при необходимости будет запускаться сам, я правильно все понял? Делаю так, cmd.exe=>
Появляются мейк файлы (Makefile, Makefile.release, Makefile.debug) Дальше захожу в CodeBlocks, запускаю проект и в свойствах проекта нажимаю "This is custom makefile" нажимаю ок. Жму F9 (т.е компиляцию и запуск) Получаю It seems that this project has no been built yet. Do you want to build it now? (что нормально, т.е кодеблок хочет его компильнуть) Нажимаю yes и получаю
Смотрю в makefile и вижу
И много подобных строк. Как я понял компилятор не знает что делать с FORCE Что я сделал не так? |
|
Litkevich Yuriy | Дата 23.10.2010, 22:05 |
В Qt designer сборка проходит абсолютно прозрачно, как и что он в это время делает не понятно. В дизайнере сборка вообще не происходит. Это всего лишь инструмент для визуального создания виджетов/оконВо вторых не понятен способ ручной компиляции Qt проектов. 1) qmake myproject.pro 2) make ... N) make 1 - программа qmake создаёт make-файлы на основе pro-файла 2 - программа make читает make-файлы и исполняет инструкции записанные в них, в отличие от bat/shell-файлов логика обработки make-файлов специфичная, т.к. позволяет отслеживать зависимости команд (например, нужно ли перекомпилировать такой-то файл или он не изменялся со времени последней компиляции) N - тоже что и №2, так как в make-файле есть цель в виде pro-файла. Т.е. если pro-файл изменился, программа make это заметит и вызовит qmake автоматически. П.С. 1) иногда всё таки приходится повторно вызывать qmake явно (руками), это когда, например, класс наследник QObject сначала не содержал макрос Q_OBJECT, а потом этот макрос появился. 2) moc вручную не вызывают, программа qmake записывает соответствующий вызов в make-файл |
|
Kagami | Дата 23.10.2010, 21:07 |
Когда я пару лет назад работал в Code::Blocks, то для работы с Qt я использовал плагин QtWorkbench. Впрочем он был не совсем удобен, и насколько я могу судить он не очень активно развивается. После выхода первой версии Qt Сreator я перешел на него и не жалею. Рекомендую на него посмотреть | |
Fedcomp | Дата 23.10.2010, 20:51 |
Всем привет. Хочу чтобы CodeBlocks на автомате (по клавише F9 т.е компиляция) проходился по полному циклу qmake и потом компиляция через mingw. Но возникло много трудностей. Во первых я новичок, процессы компиляции понимаю крайне плохо (лишь знаю что в .o файлах компилируется код, затем линкером объединяется в экзешник, ну ещё что то слышал про makefile, но не знаю как они работают, и знаю что Qt использует moc для того чтобы добавить к C++ упрощенный вид функций (т.е препроцессор moc делает б0льшую работу за программиста, собственно превращая псевдо slots и signals в настоящий код понятный компилятору)) Во вторых не понятен способ ручной компиляции Qt проектов. В Qt designer сборка проходит абсолютно прозрачно, как и что он в это время делает не понятно. Пробовал порыться в гугле, нашел qmake -project (рекурсивно проходится по текущему каталогу и составляет qt проект) и qmake "имя_проекта.pro" который проходится moc'ом как я понял. Так вот такая задача, хочу чтобы CodeBlocks автоматически запускал qmake перед компиляцией, это возможно? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 25.4.2024, 14:54 |