如何解决在 Qt pro 文件中定义一个布尔值
可以通过以下方式为 .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: qmake: using defines as conditionals
- 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。