QT_VERSION 不正确?

use*_*665 3 c++ configuration qt

我正在开发 Qt Android 应用程序(Qt 5.11.1),并尝试使用一个库,该库使用 QtGlobal 的 QT_VERSION 检查 Qt 的版本。

由于函数不可用,我在编译时遇到错误,这似乎是因为报告的 Qt 版本不正确,(库查找#if QT_VERSION >= 0x050000 ...

添加以下跟踪语句;

qDebug() << "QT VERSION: " << QT_VERSION;
qDebug() << "QT STRING: " << QT_VERSION_STR;
Run Code Online (Sandbox Code Playgroud)

给出输出:

... (int main(int, char**)): QT VERSION:  330497
... (int main(int, char**)): QT STRING:  5.11.1
Run Code Online (Sandbox Code Playgroud)

该字符串看起来正确,但版本号看起来不正确。

我正在使用 Windows 7 计算机,安装了 Qt Creator 4.7,并通过维护工具安装了 Qt 5.11.1 和 5.10.1。构建设置只是 Android 的默认设置。

我对 Qt 不太熟悉,并且不确定从这里该去哪里,所以任何帮助将不胜感激。

小智 6

根据Qt文档:

QT_版本

该宏扩展了0xMMNNPP 形式的数值(MM = 主版本,NN = 小版本,PP = 补丁),指定 Qt 的版本号。例如,如果您针对 Qt 4.1.2 编译应用程序,则 QT_VERSION 宏将扩展为 0x040102。

意味着它必须转换为十六进制数字,然后它会显示 Qt 版本号。返回的数字是 330497,因此将其转换为十六进制将是 0X50B01。由于 B 的十进制数为 11,因此版本为 5.11.1。

QT_VERSION_STR

该宏扩展为指定 Qt 版本号的字符串(例如“4.1.2”)。这是编译应用程序所针对的版本。