Ошибки Qt QPainterpath.h

В настоящее время я работаю над Qt приложение со многими #include файлы из Qt библиотека. Проект довольно большой, и я столкнулся со странной проблемой при сборке. Все ошибки отображаются внутри QPainterpath.h файл, но не имеет ничего общего с обращениями к нему из моего проекта. Все ошибки выглядят так:

c: \ qt \ 4.8.4 \ include \ qtgui ../../ src / gui / painting / qpainterpath.h (397): ошибка C2143: синтаксическая ошибка: отсутствует ‘;’ до ‘::’

c: \ qt \ 4.8.4 \ include \ qtgui ../../ src / gui / painting / qpainterpath.h (397): ошибка C2059: синтаксическая ошибка: ‘::’

c: \ qt \ 4.8.4 \ include \ qtgui ../../ src / gui / painting / qpainterpath.h (398): ошибка C2143: синтаксическая ошибка: отсутствует ‘;’ до ‘{‘

c: \ qt \ 4.8.4 \ include \ qtgui ../../ src / gui / painting / qpainterpath.h (398): ошибка C2447: ‘{‘: отсутствует заголовок функции (формальный список старого стиля?)

c: \ qt \ 4.8.4 \ include \ qtgui ../../ src / gui / painting / qpainterpath.h (405): предупреждение C4003: недостаточно фактических параметров для макроса ‘elementCount’

Я сталкивался с этим однажды и смог решить это, переместив некоторые Qt #include операторы, вызываемые перед другими заголовками классов под ними. Я не могу понять, что именно вызывает это на этот раз. Любые мысли были бы великолепны!

Спасибо!

1

Решение

Я видел это, когда вы забыли закрыть определение класса точкой с запятой. Если вы посмотрите на выходные данные компилятора и увидите, какой файл был скомпилирован непосредственно перед началом этой ошибки, у вас может быть свой ответ. Ищите синтаксические ошибки с отсутствующим ; или дополнительный } или пропавший } в конце ранее скомпилированного файла.

Это также может быть от .h файл, указанный выше вашего #include <QPainter> вызов, который имеет ошибки.

Надеюсь, это поможет.

1

Другие решения

Я работаю с RyGuyFalcore и выяснил, почему это происходит в нашем коде, а никто другой этого не видит. Проблема в том, что наш старый код переопределял макрос elementCount. Поэтому, если бы мы включили эту часть нашего унаследованного кода до того, как включили код Qt, использовался неправильный макрос 🙁 Я решил опубликовать это здесь, чтобы избежать любой погони за диким гусем, с которой могут столкнуться другие, если они столкнутся с подобной ошибкой.

1

По вопросам рекламы [email protected]