【问题标题】:How do you tell a Qt app to depend on a Qt lib?你如何告诉 Qt 应用程序依赖于 Qt 库?
【发布时间】:2012-09-12 00:43:08
【问题描述】:

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

【问题讨论】:

    标签: c++ qt dependencies dependency-management qmake


    【解决方案1】:

    qmake 允许你创建你的own configuration features。 (最后一段)

    因此,您可以创建自己的功能并将您的 lib1 链接代码移至该功能。您可以在此处添加QT+=xml。在app.pro 中,您只需写CONFIG += lib1

    【讨论】:

    • 有趣!我去看看。
    猜你喜欢
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 2014-01-05
    • 2019-04-17
    相关资源
    最近更新 更多