我刚刚将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
答案 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安装程序更新或替换。经过多次失败我发现了。希望这可以为其他人节省我已经开发的头痛。