Qt moc error 1 - что это значит? - PullRequest
8 голосов
/ 25 августа 2010

Я пытаюсь построить проект на Mac OSX, и он дает мне загадочную ошибку:

[moc_droparea.cpp] Ошибка 1

droparea.cpp - это (очевидно) файл в проекте. Я проверил, что он существует в каталоге проекта и не поврежден. Файл moc_droparea.cpp не появляется в папке сборки после этой ошибки, поэтому я предполагаю, что он не может быть собран по какой-либо причине, но ошибка слишком расплывчата, чтобы помочь мне понять, что происходит. Может ли кто-нибудь помочь мне понять, что это значит, пожалуйста?

Ответы [ 6 ]

6 голосов
/ 11 марта 2016

Нажмите «Скомпилировать вывод», прокрутите вверх и нажмите на красную линию.

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

В окне создателя qt, в разделе «Информация о прогрессе», есть кнопка с именем «compile output» (кнопка № 4).Ошибки там объясняются красным шрифтом.Нажмите на нее и прокрутите вверх.

5 голосов
/ 25 августа 2010

Решение было досадно простым.У меня была структура папок, которая помещала пробелы (недопустимые символы) в путь к файлу.Я ставлю подчеркивание вместо пробелов, и оно построено нормально.Я думаю, что препроцессор moc может обрабатывать пробелы в именах файлов, но, очевидно, нет.Я чувствую себя глупо, но, по крайней мере, проблема решена сейчас.

Надеюсь, это решение поможет кому-то еще.

1 голос
/ 06 сентября 2018

Это может быть из-за нескольких других вещей, как уже упоминали другие. Я хотел бы добавить еще один, который здесь отсутствует.

Вы получите «ошибку moc 1» в случае, если вы создадите класс и добавите в него Q_OBJECT, но не наследуете от QObject.

Если вы посмотрите на вывод компиляции, появится строка:

Ошибка: класс содержит макрос Q_OBJECT, но не наследуется от QObject

Следовательно, общий подход к решению этой проблемы - просто взглянуть на окно «Compile Output».

1 голос
/ 14 июля 2018

Вы можете щелкнуть правой кнопкой мыши на ошибке 1 и выбрать «Просмотр вывода»В моем случае в файле qrc было неверное имя файла.

1 голос
/ 01 февраля 2014

Это может быть из-за многих вещей, которые я предполагаю - у меня была похожая ситуация, когда я забыл удалить запись в файле .qrc, который больше не существует.

Так что проверьте также и пути к ресурсам.

0 голосов
/ 27 апреля 2017

Такая же ошибка 1 произошла со мной из-за файла ресурсов (.qrc), который ссылался на имя файла, начинающееся с точки.Когда я удалил точку из имени файла, компиляция снова заработала.Интересно, что ошибка произошла только под Mac OSX с использованием компилятора Clang.В Windows, использующей компилятор gcc, имя файла не вызывало ошибку.

Возможно, сообщение «[имя исходного файла] Ошибка 1» в общем случае означает, что файл не найден из-за непредвиденных символов впуть к файлу.

...