Предупреждение компилятора QT: переопределение команд для цели / игнорирования старых команд для цели

StackOverflow https://stackoverflow.com/questions/4722400

  •  12-10-2019
  •  | 
  •  

Вопрос

Когда я собираю свой проект QT для Windows, я получаю эти 2 предупреждения:

Makefile.Debug:109: warning: overriding commands for target `debug/moc_mainwindow.cpp'
Makefile.Debug:106: warning: ignoring old commands for target `debug/moc_mainwindow.cpp'

Я предполагаю, что они указывают на какую -то проблему с конфигурацией моего проекта, в чем проблема и как ее исправить?

Это было полезно?

Решение

Однажды я получил ту же ошибку, возможно, источник вашей проблемы отличается, но я все равно напишу. В моем файле *.pro это было похоже на:

SOURCES += main.cpp\
    mainwindow.cpp\
    serialHelper.cpp \
serialHelper.cpp

HEADERS  += mainwindow.h\
     += serialHelper.h \
serialHelper.h \
typeDefinitions.h

Файл CPP и заголовок повторялись. Я удаляю повторение, включающую и решенную проблему для меня.

Другие советы

make clean а потом make должен решить эту проблему. :) (или щелкните правой кнопкой мыши на проекте в QT Creator -> Clean, а затем щелкните правой кнопкой мыши на проекте в QT Creator -> Rebuild).

Если это не работает, вручную удалите Makefile и Rebuild, затем проект.

Во многих случаях эта ошибка связана с Qmake, просто помещающим все объектные файлы в плоскую папку в каталог сборки, что вызывает проблемы, если два исходных файла имеют одинаковое имя, даже если они могут быть в разных папках. Такие как

SOURCES += foo.cpp
SOURCES += bar.cpp
SOURCES += bla/foo.cpp
SOURCES += bla/bar.cpp

В этом случае Qmake будет жаловаться на Foo.O и Bar.O.

Решением этой проблемы является добавление

CONFIG += object_parallel_to_source

к файлу .pro, который заставит папку сборки отражать иерархию папки исходного дерева. Не уверен, почему это не по умолчанию.

Проблема и решение были указаны ранее здесь но не в контексте предупреждающего сообщения, обсуждаемого в этой теме.

У меня тоже была такая же проблема - Makefile включал один и тот же файл .cpp и .h дважды, и я дал мне Multiple definition of <class/function> first defined here ошибки.

Оказывается, файлы .CPP и. Так что проверьте QWTFunctions, если ни один из вышеперечисленных ответов не снялся для вас.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top