我正在尝试创建一个自定义的qmake“替换函数”,它基本上将一些内容附加到INCLUDEPATH
变量中,如下所示:
defineReplace(myFunc) {
lo=$$lower($$1)
INCLUDEPATH += /someDir/libs/lib$${lo}
message("| INCLUDEPATH A: " $${INCLUDEPATH})
return (true)
}
但是,当我使用参数运行此函数,然后打印出 INCLUDEPATH
变量时,如下所示:
$$myFunc(whatever)
message("| INCLUDEPATH B: " $${INCLUDEPATH})
我在日志中得到以下内容:
Project MESSAGE: | INCLUDEPATH A: /someDir/libs/libwhatever
Project MESSAGE: | INCLUDEPATH B:
这表明该函数可以工作,但不知何故,对 INCLUDEPATH
变量所做的更改并未保留。
我想知道如何获得我期望的行为(INCLUDEPATH
维护运行函数后对其所做的更改)。 我该怎么做?
最佳答案
您需要添加对导出
的调用。来自 qmake manual :
export(variablename)
Exports the current value of variablename from the local context of a function > to the global context
所以你的代码应该是
defineReplace(myFunc) {
lo=$$lower($$1)
INCLUDEPATH += /someDir/libs/lib$${lo}
message("| INCLUDEPATH A: " $${INCLUDEPATH})
export(INCLUDEPATH) # <-- This is new
return (true)
}
关于function - 如何从 qmake 替换函数中更改变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44012654/