2010-08-25 3 views
4

Я пытаюсь построить проект на Mac OSX, и это дает мне зашифрованное сообщение об ошибке:Ошибка Qt moc 1 - что это значит?

[moc_droparea.cpp] Error 1

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

+0

Не могли бы вы опубликовать файл droparea.h, который даст ошибку при moc'ed? – Fred

+0

Я не могу опубликовать какой-либо исходный код, к сожалению, проект для работы. Однако файл .h почти идентичен файлу, найденному в примере Drop Area, который поставляется с создателем QT. – CoutPotato

+0

Примечание: эта ошибка также может возникнуть при попытке использовать Q_OBJECT с классом шаблона. Как использовать функции сигнала/слота в классе шаблонов, описанные в: http://stackoverflow.com/questions/4397478/qt-templated-q-object-class –

ответ

4

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

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

+0

У меня была эта проблема раньше. Можете ли вы принять свой собственный ответ? Это удалит его из списка без ответа. –

0

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

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

1

Нажмите «compile output», прокрутите вверх и нажмите красную линию.

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

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

0

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

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

+0

Я думаю, что это должен был быть комментарий, а не ответ – user3402754

+0

Вправо. Но мне не разрешалось прокомментировать (слишком низкий балл). Но, опять же, это * комментарий. Я приветствую мое обновление. –

Смежные вопросы