Как вы говорите приложению Qt зависеть от библиотеки Qt?

У меня есть кодовая база, где есть несколько общих библиотек. Например, LIB1 выполняет некоторую обработку, которая необходима APP1 (зависит от).

Файлы qmake * .pro настраиваются следующим образом. Существует один корень * .pro, который является TEMPLATE=subdirs это перечисляет APP1 и LIB1 как его подкаталоги.

LIB1.pro:

TARGET = LIB1
TEMPLATE = lib

QT += core
QT += xml

DESTDIR = path/to/libs/directory

SOURCES += \
File1.cpp \
FileN.cpp

HEADERS += \
File1.h \
FileN.h

APP1.pro:

#------ dependencies ------#
LIBS += -Lpath/to/libs/directory
# LIB1
INCLUDEPATH += path/to/libs/directory/LIB1lib
DEPENDPATH += path/to/libs/directory/LIB1lib
LIBS += -lLIB1

HEADERS       = \
FileNplus1.h \
FileM.h
SOURCES       = \
FileNplus1.cpp \
FileM.cpp

Проблема в том, что когда вы компилируете корневой * .pro файл, LIB1 будет компилироваться, но APP1 не скомпилируется с ошибкой QDomElement: No such file or directory потому что APP1.pro не имеет QT += xml,

Есть хак, которым я пользуюсь, но я бы хотел его преодолеть. Хак включает в себя добавление следующей строки в APP1.pro:

# add this to APP1.pro... let's it compile again
QT += xml

Есть ли способ настроить файлы qmake * .pro таким образом, чтобы APP1.pro зависит от LIB1 без необходимости изменения APP1.pro добавить QT += xml?

(Причина этого вопроса, скажем, у вас есть другие библиотеки, которые зависят от других вещей … Я хотел бы, чтобы Qt / Qmake позаботился о зависимостях, как, например, Qt += xml зависимость.)

3

Решение

qmake позволяет создавать ваши собственные особенности конфигурации. (последний абзац)

Таким образом, вы можете создать свою собственную функцию и перенести в нее свой код, связанный с lib1. Можете добавить QT+=xml Вот. И в app.pro ты просто напишешь CONFIG += lib1

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]