2015-08-25 3 views
3

Я только что обновил Qt с 5.3.2 до 5.5.0. Проект (который использует QAbstractTableModel), который компилируется нормально в 5.3.2 не компилируется в 5.5.0, сообщая следующее сообщение об ошибке (несколько раз):Qt 5.5 (Q_ENUM вызывает ошибку компиляции)

/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 
+1

У вас есть возможный конфликт перечисления и класс LayoutChangeHint, посмотрите здесь http://stackoverflow.com/questions/9452329/error-iso-c-forbids-declaration-of-object-with-no-type – demonplus

+0

Вещь это, поправьте меня, если я ошибаюсь, это конфликт Qt, а не мой. У меня нет подкласса LayoutChangeHint. –

+1

Не уверен. Я могу найти только перечисление LayoutChangeHint {NoLayoutChangeHint, VerticalSortHint, HorizontalSortHint} в Qt. Вы видите что-то еще, связанное с конфликтом? – demonplus

ответ

1

Bonehead move. В QtCreator я указал на версию qmake версии 5.5.0, но в файле .project 5.3.2 все еще находился в INCLUDEPATH.

0

Я столкнулся с той же проблемой после обновления до Qt5.5 на своем Mac. Оказалось, что я через некоторое время установил QT через доморощенный. Я попытался сделать «обновление для пива», но несмотря на то, что он обновил QT5, проблема осталась ... и после поиска я обнаружил, что могут быть проблемы.

Чтобы решить эту проблему, я неустановленной QT с помощью Homebrew (заварить удалить кварты) И я удалил QT с помощью «MaintenanceTool» приложение, которое было в моем QT каталоге установки. Затем я снова установил Qt5.5, используя инструмент онлайн-установки. Эта последовательность, наконец, сделала эту работу.

Похоже, что необходимо убедиться, что старые библиотеки/ссылки QT исчезли, так что установщик Qt5.5 может настроить их так, чтобы они были найдены правильно. Те старые символические ссылки, которые оставил Homebrew, как-то не обновлялись или заменялись установщиком Qt5.5. Я обнаружил это после неоднократных неудач. Надеюсь, это спасет кого-то еще головную боль, которую я разработал.