我有一个代码库,其中有一些共享库。例如,LIB1 执行 APP1 需要(取决于)的某种处理。
qmake *.pro 文件的设置如下。有一个根 *.proTEMPLATE=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
.
我使用了一个 hack,但我想克服这个 hack。hack 包括在 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
依赖关系。)