如何告诉一个Qt应用程序依赖于一个Qt库?

3

我有一个代码库,其中有一些共享库。例如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依赖项。)
1个回答

2
qmake允许您创建{{link1:自己的配置功能}}(最后一段)。
因此,您可以创建自己的功能并将lib1链接代码移到其中。您可以在此处添加QT+=xml。在app.pro中,您只需编写CONFIG += lib1

1
有趣!我会去看看。 - Trevor Boyd Smith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接