在 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
可以通过以下方式为 .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