![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Fedcomp |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 23.10.2010 Пользователь №: 2146 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Всем привет.
Хочу чтобы CodeBlocks на автомате (по клавише F9 т.е компиляция) проходился по полному циклу qmake и потом компиляция через mingw. Но возникло много трудностей. Во первых я новичок, процессы компиляции понимаю крайне плохо (лишь знаю что в .o файлах компилируется код, затем линкером объединяется в экзешник, ну ещё что то слышал про makefile, но не знаю как они работают, и знаю что Qt использует moc для того чтобы добавить к C++ упрощенный вид функций (т.е препроцессор moc делает б0льшую работу за программиста, собственно превращая псевдо slots и signals в настоящий код понятный компилятору)) Во вторых не понятен способ ручной компиляции Qt проектов. В Qt designer сборка проходит абсолютно прозрачно, как и что он в это время делает не понятно. Пробовал порыться в гугле, нашел qmake -project (рекурсивно проходится по текущему каталогу и составляет qt проект) и qmake "имя_проекта.pro" который проходится moc'ом как я понял. Так вот такая задача, хочу чтобы CodeBlocks автоматически запускал qmake перед компиляцией, это возможно? |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
В 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-файл |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 17.2.2025, 3:07 |