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