Есть файл SomeLib.pro, который содержит:
CONFIG += debug TEMPLATE = lib TARGET = SomeLib ..
Тогда в зависимом SomeApp.pro:
.. debug:LIBS += -lSomeLib_debug ..
Как заставить SomeApp создавать, если я коснулся SomeLib в qmake?
Это ужасно, потому что вам нужно дать точное имя файла библиотеки, но это должно работать:
TARGETDEPS + = libfoo.a
QT Creator выполнит эту работу, если вы нажмете «Добавить библиотеку ...» в контекстном меню проекта, который должен включать библиотеку.
Эти переменные автоматически настраиваются для вас:
См. Также http://doc.qt.digia.com/qtcreator-2.1/creator-project-qmake-libraries.html
В ответ на комментарий Захира, возможно, стоит указать, что указывать эту зависимость в файлах qmake нет необходимости при использовании DLL, но обязательно , если ваш exe зависит от статической библиотеки.
Я использовал:
POST_TARGETDEPS += c:/open-en/lib/win32mingw/libosal_based.a
Это работает, но неуклюже, так как необходимо указать полный путь к библиотеке, который отличается для каждой операционной системы / компилятора.
qmake не предоставляет эту способность.
qmake
Вместо этого поместите ваше приложение и lib в подкаталоги, затем создайте Makefile в их родительском каталоге, который будет выглядеть примерно так:
all: FRC cd Somelib && qmake && $(MAKE) cd SomeApp && qmake && $(MAKE) FRC:
Тогда всегда запускайте make из этого каталога.
make
конечно, это невозможно, вы говорите об использовании qmake для обратного поиска зависимостей? Итак, что вы хотите, чтобы он создал приложение B (и любое другое приложение, зависящее от библиотеки A) после внесения изменений в библиотеку A?
Это все равно что сказать перекомпилировать все приложения Visual Basic, если vbrun300.dll обновляется?