Russian Qt Forum
Сентябрь 22, 2024, 10:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Программа и статическая библиотека  (Прочитано 4095 раз)
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.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #1 : Июль 20, 2009, 16:01 »

Я недавно тоже самое писал, вопрос оставлся без ответа Грустный
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #2 : Июль 20, 2009, 16:02 »

а если сделать в корне:

make clean
qmake *.pro
make

не подходит?

« Последнее редактирование: Июль 20, 2009, 16:04 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #3 : Июль 20, 2009, 16:12 »

проходит, только это же каждый раз make clean делать на большой проект - жесть.
Записан
alex12
Гость
« Ответ #4 : Июль 20, 2009, 16:13 »

а если сделать в корне:

make clean
qmake *.pro
make

не подходит?

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

Вызывать make в корне еще не хорошо тем, что в реальности там 10 подкаталогов.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #5 : Июль 21, 2009, 01:07 »

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

Все это неудобно все равно.. Для меня решением оказалось отказаться от статической сборки на этапе разработки отладки --- стало здорово - изменил либу, перекомпилял ее - заускаешь без всяких ребилдов все ок!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 22.