qt_version_major编译到32位时未声明

QT_VERSION_MAJOR not declared when compiling to 32 bits

本文关键字:32位 未声明 编译 version major qt      更新时间:2023-10-16

我正在努力将现有代码从QT4到QT5移植,并且编译在64位(本机系统体系结构)上正常运行,但是当我尝试编译时会出现奇怪的错误。到32位:

$ QMAKESPEC=linux-g++-32 qmake-qt5
$ make
./create_version.sh
g++ -c -m32 -pipe -g -std=gnu++0x -Wall -W -D_REENTRANT -fPIC -DSLT -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I. -Iinclude -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtCore -I. -I/usr/lib64/qt5/mkspecs/linux-g++-32 -o main.o main.cpp
In file included from /usr/include/qt5/QtCore/qcoreapplication.h:37:0,
                 from /usr/include/qt5/QtCore/QCoreApplication:1,
                 from main.cpp:1:
/usr/include/qt5/QtCore/qcoreapplication.h:82:31: error: ‘QT_VERSION_MAJOR’ was not declared in this scope
     enum { ApplicationFlags = QT_VERSION
...

我猜这与代码无关,因为错误发生在我的代码的第一行上,这只是指令,但不知道如何从这里进行。如果很重要,则来自Fedora 23系统。

问题是缺少的软件包:qt5-base-devel.i686使用

安装后
sudo dnf install qt5-qtbase-devel.i686

问题已经消失。