crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

QCasper
  опции профиля:
сообщение 6.12.2009, 18:01
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 26.11.2007
Пользователь №: 24

Спасибо сказали: 2 раз(а)




Репутация:   1  


Есть один проект - статическая библиотека. Есть второй проект - исполняемый модуль. Модуль линкуется с библиотекой. Нужно, чтобы при запуске сборки модуля автоматически выполнялась сборка всех библиотек, от которых он зависит. На уровне файлов проекта естественно. То есть без всяких левых скриптов (это читай вручную опять же).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
frg10
  опции профиля:
сообщение 7.12.2009, 15:38
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 47
Регистрация: 8.11.2009
Из: Ростов-на-Дону
Пользователь №: 1213

Спасибо сказали: 5 раз(а)




Репутация:   2  


Цитата(QCasper @ 7.12.2009, 14:57) *
Это, как я понял, работает следующим образом. Если изменился сам файл либы (не исходники) до при команде make для приложения, последнее будет пересобрано. Это решает половину задачи. Вторая половина подразумевает, что команда make для приложения инициирует также и сборку всех либ, от которых оно зависит.


У меня проект тоже состоит из нескольких либ и приложения. И собирается ровно так, как хочется: собираются сначала все либы, потом приложение. Если только одна либа изменилась, то пересобирается только она и приложение.
Структура проекта такая (названия подпроектов изменены):
source
    \lib1
    \lib2
    \mainapp


В каталоге source лежит главный проектный файл source.pro. Содержимое примерно такое:
TEMPLATE = subdirs

CONFIG += ordered

SUBDIRS = lib1 \
    lib2 \
    mainapp_bin

mainapp_bin.subdir = mainapp
mainapp_bin.depends = lib1 lib2


ordered говорит qmake-у чтобы проекты собирались именно в таком порядке.
mainapp_bin.depends = lib1 lib2 - говорит что главное приложение зависит от либ

Проекты либ не очень интересны, поэтому их не привожу.
А проект главного приложения вот такой (несущественные части пропущены):
TARGET = mainapp
TEMPLATE = app
...
SOURCES += main.cpp
...
unix:MYLIBSDIR = ../../lib/unix-x86

LIBS  += -L$$MYLIBSDIR

unix {
    PRE_TARGETDEPS += $$MYLIBSDIR/libVisualization.a \
                      $$MYLIBSDIR/libTransforms.a
}
....
LIBS += -lVisualization \
        -lTransforms
....


Если открыть проект в QtCreator, то откроются все подпроекты. Ну и из консоли все нормально собирается.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
QCasper
  опции профиля:
сообщение 7.12.2009, 15:41
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 26.11.2007
Пользователь №: 24

Спасибо сказали: 2 раз(а)




Репутация:   1  


А, ну так вся фишка в "главном проектном файле". А если обойтись только проектом приложения и только проектом либ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- QCasper   Автоматическая сборка зависимостей   6.12.2009, 18:01
- - Litkevich Yuriy   Смотри QMAKE_EXTRA_TARGETS тут   6.12.2009, 18:23
|- - QCasper   Цитата(Litkevich Yuriy @ 6.12.2009, 18:23...   6.12.2009, 18:38
- - Litkevich Yuriy   Цитата(QCasper @ 6.12.2009, 21:38) Буду о...   6.12.2009, 18:46
|- - QCasper   Цитата(Litkevich Yuriy @ 6.12.2009, 18:46...   6.12.2009, 20:46
- - QCasper   Неужели никто не сталкивался? Или все пересобирают...   7.12.2009, 14:09
- - frg10   Я для gcc под Linux делал так: unix:MYLIBSDIR...   7.12.2009, 14:39
- - Kagami   Я в Qt Creator работаю. Он позволяет галочками отм...   7.12.2009, 14:50
- - QCasper   Это, как я понял, работает следующим образом. Если...   7.12.2009, 14:57
|- - Kagami   Цитата(QCasper @ 7.12.2009, 14:57) Попроб...   7.12.2009, 15:06
|- - QCasper   Цитата(Kagami @ 7.12.2009, 15:06) Для это...   7.12.2009, 15:09
- - frg10   Цитата(QCasper @ 7.12.2009, 14:57) Это, к...   7.12.2009, 15:38
|- - QCasper   А, ну так вся фишка в "главном проектном файл...   7.12.2009, 15:41
- - frg10   Цитата(QCasper @ 7.12.2009, 15:41) А, ну ...   7.12.2009, 16:08
|- - QCasper   Цитата(frg10 @ 7.12.2009, 16:08) ИМХО, ни...   7.12.2009, 16:26
- - frg10   Цитата(QCasper @ 7.12.2009, 16:26) Ну поч...   7.12.2009, 16:39
- - QCasper   Цитата(frg10 @ 7.12.2009, 16:39) А по пов...   7.12.2009, 16:48


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 28.6.2025, 10:19