2011-01-18 11 views
29

Cuando estoy compilar mi proyecto Qt para Windows recibo estas advertencias: 2Qt advertencia del compilador: anulando comandos de destino/ignorar comandos de edad para la meta

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' 

supongo que indican un problema con mi proyecto config , ¿cuál es el problema y cómo lo soluciono?

+0

Simplemente haga una compilación limpia y estas se habrán ido. – ismail

Respuesta

68

Recibí el mismo error una vez, tal vez el origen de su problema sea diferente, pero lo escribiré de todos modos. En mi archivo * .pro, era como:

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

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

CPP y archivo de cabecera se repetía. Elimino los repetidos incluidos y el problema resuelto para mí.

+5

me salvaste de mucha frustración – nkint

+2

Yo también esto sucedió en SUBDIRS. – reggie

+0

Tenga en cuenta que la repetición puede deberse a que dos archivos tienen el mismo nombre y se mencionan en diferentes archivos '.pri' incluidos. – Troyseph

9

make clean y luego make debería resolver este problema. :) (O haga clic derecho en el proyecto en Qt Creator -> Limpiar y luego haga clic derecho en el proyecto en Qt Creator -> Reconstruir).

Si no funciona, elimine manualmente el archivo MAKE y el proyecto de reconstrucción.

+4

Si esto no resuelve el problema, entonces es probable que tenga el archivo mainwindow.h enumerado más de una vez en su variable HEADERS en el archivo .pro. –

+0

Gracias, resultó que realmente lo tenía en la lista dos veces. ¿Cómo marque su respuesta como la correcta? ¿O debería simplemente marcar al padre? – sashoalm

2

He tenido el mismo problema también - Makefile incluyó el mismo archivo .cpp y .h dos veces, y me estaba dando Multiple definition of <class/function> first defined here errores.

Resulta que los archivos .cpp y .h en cuestión ya se han agregado como qwtfunctions, además de estar en el archivo * .pro. Así que compruebe qwtfunctions también si ninguna de las respuestas anteriores funcionó para usted.

2

En muchos casos, este error está relacionado con QMake simplemente colocando todos los archivos de objeto en una carpeta plana en el directorio de compilación, lo que causa problemas si dos archivos de origen tienen el mismo nombre, aunque podrían estar en diferente carpetas. Tal como

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

En este caso QMake se queja de tanto foo.o y bar.o.

La solución a este problema es añadir

CONFIG += object_parallel_to_source 

al archivo .pro que hará que la carpeta de compilación para reflejar la jerarquía de carpetas del árbol de fuentes. No estoy seguro de por qué esto no es el predeterminado.

El problema y la solución se han señalado previamente here pero no en el contexto del mensaje de advertencia discutido en este hilo.

Cuestiones relacionadas