当我为Windows编译我的QT项目时,我会收到这两个警告:

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创建者中的项目 - >清洁,然后右键单击QT创建者中的项目 - >重建)。

如果它不起作用,请手动删除makefile和重建,然后进行项目。

在很多情况下,此错误与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 错误。

事实证明,除了 *.pro文件外,还已经添加了.cpp和.h文件作为qwtfunctions。因此,如果以上答案对您有用,还要检查QWTFunctions。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top