Поиск по этому блогу

11 июля 2013

class Ui::SomeClass has no member named SomeMember

При переносе Qt-проекта получил такую ошибку:
class Ui::SomeClass has no member named SomeMember
при обращении к полям ui.

Причем, особенно выносит мозг тот факт, что QtCreator по F2 отлично находит все эти поля.
Очистка, запуск qmake и пересборка не помогли.
Снос всей папки со сборкой тоже не помог.

Но ошибка оказалась чрезвычайно глупой:
ui файлы переводились в ui_*.h в папке сборки проекта, но каким-то образом (похоже со старых времен) в папке с исходниками проекта оказались одноименные файлы, так что когда делаем #include "ui_*.h", то подключается не файл из папки сборки, а файл из папки проекта.

Соответственно, снос этих старых файлов все решил.

В более сложных случаях следовало бы скормить исходники препроцессору и посмотреть что бы он выдал -- это помогло бы быстрее понять в чем ошибка. 

1 комментарий:

  1. Анонимный22 января, 2019 12:56

    Спасибо огромное, добрый человек! Полдня мозг ломал, правда у меня они похитрее спрятались, но подход помог. Лучей добра и сотен нефти ;)

    ОтветитьУдалить