在 Qt pro 文件中定义一个 bool

Defining a bool in Qt pro file

可以通过以下方式为 .pro 文件中的变量设置布尔值:

//ProjectFile.pro
DEFINES += "myBool=1"

这个变量可以在源代码*.cpp中用于条件编译。 Qt 甚至高亮了条件表达式:



现在我正在寻找一种在 .pro 文件中使用 myBool 变量的方法

根据 Qt 文档,条件语句的工作方式如下: https://doc.qt.io/archives/qt-4.8/qmake-advanced-usage.html

<condition> {
    <command or definition>
    ...
}

根据我非常基本的 qmake 知识,以下方法不起作用

//ProjectFile.pro
CONFIG(debug, debug|release) {message("Hello from DebugMode")} // => works fine

$$myBool {message("Hello from myBool")} // => not working

问题:有人知道如何使用 myBool 等已定义变量处理 pro 文件中的条件语句吗?

出于好奇,我研究了一下……

首先,我咨询了 qmake Manual > Advanced Usage,但没有太大帮助。

然后我试图用 google 找到一些东西,并找到了以下两个 Q/As (以及其他):

  • SO: SO: QMake appending to DEFINE without respecting conditional.

我结合了我发现的内容并在 qmake(在 Debian 上)中进行了测试:

CONFIG+=MY_BOOL

MY_BOOL {
  DEFINES+="MY_BOOL=1"
}

message(Defines: $$DEFINES)

MY_BOOL {
  message(MY_BOOL defined)
}
!MY_BOOL {
  message(MY_BOOL not defined)
}

输出:

Project MESSAGE: Defines: MY_BOOL=1
Project MESSAGE: MY_BOOL defined

为了反查,我改了第一行:

#CONFIG+=MY_BOOL

输出:

Defines: 
Project MESSAGE: MY_BOOL not defined