Qt 5.5(导致编译错误的Q_ENUM)

时间:2015-08-25 15:20:53

标签: qt qt5.5

我刚刚将Qt从5.3.2升级到5.5.0。在5.3.2中编译得很好的项目(使用QAbstractTableModel)不能在5.5.0中编译,报告以下错误(多次):

/usr/local/Qt-5.5.0/include/QtCore/qabstractitemmodel.h:241: error: ISO C++     forbids declaration of 'Q_ENUM' with no type [-fpermissive]
     Q_ENUM(LayoutChangeHint)
                        ^

错误完全在Qt的文件中,而不是我的。我正在使用gcc491。以下是我的项目文件中的一些有趣的部分。有什么想法吗?

TEMPLATE = app
TARGET = MyApp
QT += core widgets gui
QMAKE_CXXFLAGS += -g -std=c++11

2 个答案:

答案 0 :(得分:1)

Bonehead移动。在QtCreator中,我指向了5.5.0版本的qmake,但是在.project文件中,5.3.2仍然在INCLUDEPATH中。

答案 1 :(得分:0)

我在Mac上升级到Qt5.5后遇到了同样的问题。事实证明,我曾经在某个时候通过自制软件安装了QT。我试着做一个' brew更新'但即使它更新了QT5,问题仍然存在......在搜索之后我发现可能存在未解决的问题。

要解决此问题,我通过Homebrew卸载了QT( brew uninstall qt )并使用' MaintenanceTool '卸载了QT。我的QT安装目录中的应用程序。然后我使用在线安装工具再次重新安装Qt5.5。这个序列终于完成了这项工作。

似乎有必要确保旧的QT库/链接已经消失,以便Qt5.5安装程序可以设置它们以便正确找到它们。 Homebrew留下的那些旧的符号链接在某种程度上没有被Qt5.5安装程序更新或替换。经过多次失败我发现了。希望这可以为其他人节省我已经开发的头痛。