QMake变量在.pri函数中修改时不会改变

QMake variables not changing when modified in a .pri function

我创建了一个包含 .pri 文件的 qmake 函数:

defineTest(add_my_lib) {
    lib_name = $
    message("adding lib$$lib_name ")
    include(mypath/$${lib_name}.pri)
}

在这个 .pri 文件中,我添加了包含库的行:

INCLUDEPATH += /pathToLib/src
LIBS += -L/pathToLib/lib -lmylibname

问题是出于某种原因,在调用 add_my_lib 的 .pro 中 INCLUDEPATH 被重置。 看起来 INCLUDEPATH 是一个不能被函数修改的变量。 或者更好的是,它可以在函数内部,但值不会在调用方 .pro 文件中传播。

这是正确的行为还是我做错了什么?

我想我找到了解决方案: 你必须把

export(INCLUDEPATH)
export(LIBS)
export(DEPENDPATH)

在 include() 指令之后