【发布时间】:2015-11-19 09:20:15
【问题描述】:
我刚刚将 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
【问题讨论】:
-
你的枚举和类LayoutChangeHint可能有冲突,看这里*.com/questions/9452329/…
-
问题是,如果我错了,请纠正我,这是 Qt 的冲突,而不是我的。我没有任何子类 LayoutChangeHint。
-
不确定。我只能在 Qt 中找到 enum LayoutChangeHint { NoLayoutChangeHint, VerticalSortHint, HorizontalSortHint }。您是否发现任何其他相关的因素会导致冲突?
-
好的,我找到了——我的 .project 文件在 INCLUDEPATH 中仍然有 5.3.2 目录。大问题。 ;) 感谢您的回复.. 他们让我思考。