54

When I'm compiling my Qt project for Windows I receive these 2 warnings:

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'

I assume they indicate some problem with my project config, what is the problem and how do I fix it?

sashoalm
  • 75,001
  • 122
  • 434
  • 781

4 Answers4

118

I got the same error once , maybe source of your problem is different but I will write anyways. In my *.pro file, it was like :

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

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

cpp and header file was repeating itself. I delete the repeating includes and problem solved for me .

Kadir Erdem Demir
  • 3,531
  • 3
  • 28
  • 39
17

In a lot of cases this error is related to QMake just putting all the object files in a flat folder in the build directory, which then causes problems if two source files have the same name, even though they might be in different folders. Such as

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

In this case QMake would complain about both foo.o and bar.o.

The solution to this problem is to add

CONFIG += object_parallel_to_source

to the .pro file which will cause the build folder to mirror the folder hierarchy of the source tree. Not sure why this isn't the default.

The problem and solution have been previously pointed out here but not in the context of the warning message discussed in this thread.

rsp1984
  • 1,877
  • 21
  • 23
9

make clean and then make should solve this problem. :) (Or right click on project in Qt Creator -> Clean and then right click on project in Qt Creator -> Rebuild).

If it does not work, manually delete the makefile and the rebuild then project.

Palmik
  • 2,675
  • 16
  • 13
  • 4
    If this does not solve the problem, then it is likely you have the mainwindow.h file listed more than once in your HEADERS variable in the .pro file. – Caleb Huitt - cjhuitt Jan 20 '11 at 22:33
  • Thanks, it turned out I really did have it listed twice. How do I mark your answer as the correct one? Or should I just mark the parent? – sashoalm Feb 12 '11 at 06:57
2

I've had the same issue as well -- Makefile included the same .cpp and .h file twice, and was giving me Multiple definition of <class/function> first defined here errors.

Turns out the .cpp and .h files in question were already added as qwtfunctions, in addition to being in *.pro file. So check qwtfunctions as well if none of the above answers worked for you.

new_at_coding
  • 31
  • 1
  • 4