51

当我为 Windows 编译我的 Qt 项目时,我收到以下 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'

我假设他们表明我的项目配置存在问题,问题是什么,我该如何解决?

4

4 回答 4

116

我有一次同样的错误,也许你的问题的来源不同,但我还是会写。在我的 *.pro 文件中,它就像:

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

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

cpp 和头文件在重复。我删除了重复的包含并为我解决了问题。

于 2013-01-10T08:12:18.413 回答
15

在很多情况下,此错误与 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 文件,这将导致构建文件夹镜像源树的文件夹层次结构。不知道为什么这不是默认值。

问题和解决方案之前已在此处指出,但未在此线程中讨论的警告消息的上下文中。

于 2017-08-29T15:34:09.033 回答
9

make clean然后make应该解决这个问题。:) (或者右键单击 Qt Creator 中的项目 -> Clean 然后右键单击 Qt Creator 中的项目 -> Rebuild)。

如果它不起作用,请手动删除 makefile 并重新生成项目。

于 2011-01-18T09:31:25.510 回答
2

我也遇到了同样的问题——Makefile 两次包含相同的 .cpp 和 .h 文件,并且给了我Multiple definition of <class/function> first defined here错误。

原来有问题的 .cpp 和 .h 文件已经被添加为 qwtfunctions,除了在 *.pro 文件中。因此,如果上述答案都不适合您,请检查 qwtfunctions 。

于 2015-11-12T16:03:59.430 回答