当我为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'
我认为它们表示我的项目配置存在一些问题,问题是什么,我该如何解决?
当我为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和头文件重复了。我删除了重复的包含,问题得到解决。
.pri
文件中都被提到了。 - Troyseph在很多情况下,这个错误与QMake把所有对象文件放在构建目录的一个扁平文件夹中有关,如果两个源文件具有相同的名称,即使它们可能在不同的文件夹中,也会导致问题。比如:
在许多情况下,这个错误是由于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 文件中,这会导致构建文件夹镜像源树的文件夹层次结构。不确定为什么这不是默认设置。
问题和解决方案以前在这里提出过,但没有在讨论线程中讨论警告消息的上下文中提到。
make clean
然后 make
可以解决这个问题。 :) (或在Qt Creator中右键单击项目 -> 清理,然后在Qt Creator中右键单击项目 -> 重建)。
如果这样仍然不行,可以手动删除makefile并重新构建项目。