![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
QCasper |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 66 Регистрация: 26.11.2007 Пользователь №: 24 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
Есть один проект - статическая библиотека. Есть второй проект - исполняемый модуль. Модуль линкуется с библиотекой. Нужно, чтобы при запуске сборки модуля автоматически выполнялась сборка всех библиотек, от которых он зависит. На уровне файлов проекта естественно. То есть без всяких левых скриптов (это читай вручную опять же).
|
|
|
![]() |
frg10 |
![]()
Сообщение
#2
|
Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 8.11.2009 Из: Ростов-на-Дону Пользователь №: 1213 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Это, как я понял, работает следующим образом. Если изменился сам файл либы (не исходники) до при команде make для приложения, последнее будет пересобрано. Это решает половину задачи. Вторая половина подразумевает, что команда make для приложения инициирует также и сборку всех либ, от которых оно зависит. У меня проект тоже состоит из нескольких либ и приложения. И собирается ровно так, как хочется: собираются сначала все либы, потом приложение. Если только одна либа изменилась, то пересобирается только она и приложение. Структура проекта такая (названия подпроектов изменены):
В каталоге source лежит главный проектный файл source.pro. Содержимое примерно такое:
ordered говорит qmake-у чтобы проекты собирались именно в таком порядке. mainapp_bin.depends = lib1 lib2 - говорит что главное приложение зависит от либ Проекты либ не очень интересны, поэтому их не привожу. А проект главного приложения вот такой (несущественные части пропущены):
Если открыть проект в QtCreator, то откроются все подпроекты. Ну и из консоли все нормально собирается. |
|
|
QCasper |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 66 Регистрация: 26.11.2007 Пользователь №: 24 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
А, ну так вся фишка в "главном проектном файле". А если обойтись только проектом приложения и только проектом либ?
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 28.6.2025, 10:19 |