Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: alex12 от Июль 20, 2009, 15:17



Название: Программа и статическая библиотека
Отправлено: alex12 от Июль 20, 2009, 15:17
Рассказываю немного упрощенный проект. Есть два подкаталога с исходниками: первый статическая библиотека, второй - программа, использующая эту библиотеку. В подкаталогах лежат свои .pro файлы.

В корне проекта лежит .pro файл:
Код:
TEMPLATE = subdirs
CONFIG  += ordered
SUBDIRS  = lib             \
           prog            \

Сначала собирается библиотека, потом программа. Все хорошо.

Проблема возникает тогда, когда я что-то правлю в библиотеке и ее пересобираю. Для того, чтобы проверить работу моих изменений нужно пересобрать программу. Сейчас это сделано коряво. В .pro файле библиотеки:
Код:
QMAKE_POST_LINK  +=  cd .. && cd prog && mingw32-make release && cd .. 

Есть ли возможность как-то грамотно это сдалать? Что-то типа POST_TARGETDEPS.


Название: Re: Программа и статическая библиотека
Отправлено: Admin от Июль 20, 2009, 16:01
Я недавно тоже самое писал, вопрос оставлся без ответа :(


Название: Re: Программа и статическая библиотека
Отправлено: kuzulis от Июль 20, 2009, 16:02
а если сделать в корне:

make clean
qmake *.pro
make

не подходит?



Название: Re: Программа и статическая библиотека
Отправлено: Admin от Июль 20, 2009, 16:12
проходит, только это же каждый раз make clean делать на большой проект - жесть.


Название: Re: Программа и статическая библиотека
Отправлено: alex12 от Июль 20, 2009, 16:13
а если сделать в корне:

make clean
qmake *.pro
make

не подходит?

Подходит, конечно, но не для разработки. Я использую CodeBlocks в качестве IDE и он настроен так, что просто запускает make в каталоге проекта.

Вызывать make в корне еще не хорошо тем, что в реальности там 10 подкаталогов.


Название: Re: Программа и статическая библиотека
Отправлено: break от Июль 21, 2009, 01:07
1) Или вызывать make clean во всех подкаталогах с проектами кот. линкуются с этой библиотекой - для автоматизации этого процесса можно иметь еще 1 pro файл - "Ветвь проекта зависимая от этой библиотеки" - для нее можно в IDE запускать ребилд (я в QtCreator так делал)
2) Похожим образом можно использовать сессии которые есть в QtCreator - то есть набор проектов открыт и для всех открытых можно запускать ребилд... Можно создать набор сессии с открытыми проектами зависимыми от разных либ

Все это неудобно все равно.. Для меня решением оказалось отказаться от статической сборки на этапе разработки отладки --- стало здорово - изменил либу, перекомпилял ее - заускаешь без всяких ребилдов все ок!