Как указать зависимость файла библиотеки для qmake в Qt? - PullRequest
9 голосов
/ 23 апреля 2009

Есть файл SomeLib.pro, который содержит:

CONFIG  += debug
TEMPLATE = lib
TARGET = SomeLib
..

Тогда в зависимом SomeApp.pro:

..
debug:LIBS += -lSomeLib_debug
..

Как заставить SomeApp создавать, если я коснулся SomeLib в qmake?

Ответы [ 6 ]

16 голосов
/ 24 апреля 2009

Это ужасно, потому что вам нужно дать точное имя файла библиотеки, но это должно работать:

TARGETDEPS + = libfoo.a

3 голосов
/ 20 мая 2013

QT Creator выполнит эту работу, если вы нажмете «Добавить библиотеку ...» в контекстном меню проекта, который должен включать библиотеку.

Эти переменные автоматически настраиваются для вас:

  • ЛИЭС
  • INCLUDEPATH
  • DEPENDPATH
  • PRE_TARGETDEPS

См. Также http://doc.qt.digia.com/qtcreator-2.1/creator-project-qmake-libraries.html

2 голосов
/ 10 мая 2009

В ответ на комментарий Захира, возможно, стоит указать, что указывать эту зависимость в файлах qmake нет необходимости при использовании DLL, но обязательно , если ваш exe зависит от статической библиотеки.

1 голос
/ 15 сентября 2009

Я использовал:

POST_TARGETDEPS += c:/open-en/lib/win32mingw/libosal_based.a

Это работает, но неуклюже, так как необходимо указать полный путь к библиотеке, который отличается для каждой операционной системы / компилятора.

1 голос
/ 23 апреля 2009

qmake не предоставляет эту способность.

Вместо этого поместите ваше приложение и lib в подкаталоги, затем создайте Makefile в их родительском каталоге, который будет выглядеть примерно так:

all: FRC
    cd Somelib && qmake && $(MAKE) 
    cd SomeApp && qmake && $(MAKE)

FRC:

Тогда всегда запускайте make из этого каталога.

0 голосов
/ 23 апреля 2009

конечно, это невозможно, вы говорите об использовании qmake для обратного поиска зависимостей? Итак, что вы хотите, чтобы он создал приложение B (и любое другое приложение, зависящее от библиотеки A) после внесения изменений в библиотеку A?

Это все равно что сказать перекомпилировать все приложения Visual Basic, если vbrun300.dll обновляется?

...