Название: Программа и статическая библиотека Отправлено: alex12 от Июль 20, 2009, 15:17 Рассказываю немного упрощенный проект. Есть два подкаталога с исходниками: первый статическая библиотека, второй - программа, использующая эту библиотеку. В подкаталогах лежат свои .pro файлы.
В корне проекта лежит .pro файл: Код: TEMPLATE = subdirs Сначала собирается библиотека, потом программа. Все хорошо. Проблема возникает тогда, когда я что-то правлю в библиотеке и ее пересобираю. Для того, чтобы проверить работу моих изменений нужно пересобрать программу. Сейчас это сделано коряво. В .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 - то есть набор проектов открыт и для всех открытых можно запускать ребилд... Можно создать набор сессии с открытыми проектами зависимыми от разных либ Все это неудобно все равно.. Для меня решением оказалось отказаться от статической сборки на этапе разработки отладки --- стало здорово - изменил либу, перекомпилял ее - заускаешь без всяких ребилдов все ок! |