我有一个代码库,其中有一些共享库。例如,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
。
我使用了一个 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
依赖。)
最佳答案
qmake 允许您创建自己的 own configuration features . (最后一段)
因此您可以创建自己的功能并将您的 lib1 链接代码移动到它。您可以在此处添加QT+=xml
。在 app.pro
中,您只需编写 CONFIG += lib1
关于c++ - 你如何告诉 Qt 应用程序依赖于 Qt 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12499251/