51

Qt プロジェクトを Windows 用にコンパイルすると、次の 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 がすべてのオブジェクト ファイルをビルド ディレクトリのフラット フォルダーに配置することに関連しており、2 つのソース ファイルが異なるフォルダーにある場合でも同じ名前の場合に問題が発生します。そのような

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

この場合、QMake は foo.o と bar.o の両方について文句を言います。

この問題の解決策は、追加することです

CONFIG += object_parallel_to_source

これにより、ビルド フォルダーがソース ツリーのフォルダー階層をミラーリングします。これがデフォルトではない理由がわかりません。

問題と解決策は以前にここで指摘されましたが、このスレッドで説明されている警告メッセージのコンテキストではありません。

于 2017-08-29T15:34:09.033 に答える
9

make cleanそして、makeこの問題を解決する必要があります。:) (または、Qt Creator でプロジェクトを右クリック -> クリーンし、Qt Creator でプロジェクトを右クリック -> リビルド)。

うまくいかない場合は、メイクファイルを手動で削除し、再ビルドしてからプロジェクトを実行してください。

于 2011-01-18T09:31:25.510 に答える