c++ - 你如何告诉 Qt 应用程序依赖于 Qt 库?

标签 c++ qt dependencies dependency-management qmake

我有一个代码库,其中有一些共享库。例如,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/

相关文章:

java - 如何解决各种 log4j 的包冲突?

c++ - 错误 C1083 : Cannot open include file: 'FL/Fl.h' : No such file or directory

c++ - 与 BLDC Controller 通信时,串行读取 () 以错误号 11 终止

c++ - 使用 Qt GUI 从所有可用的串口中选择

c++ - 如何检查 QString 的第一个字符?

c++ - 当我尝试加载 cer 文件时 QSslCertificate 崩溃

java - Gradle 在目录中包含传递依赖项

c++ - boost 变体的 spirit 传承

c++ - 如何在命名空间中导入 C++ 类的 dll

c# - UnityContainer 的每个方法调用都需要依赖项