QTコンパイラ警告:ターゲットのコマンドをオーバーライド /ターゲットの古いコマンドを無視する
質問
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'
私は彼らが私のプロジェクトの構成に何らかの問題を示していると思います、問題は何ですか、そしてそれを修正するにはどうすればよいですか?
解決
私は同じエラーを一度受けました、おそらくあなたの問題の原因は異なるかもしれませんが、とにかく書くでしょう。私の *.proファイルでは、次のようでした。
SOURCES += main.cpp\
mainwindow.cpp\
serialHelper.cpp \
serialHelper.cpp
HEADERS += mainwindow.h\
+= serialHelper.h \
serialHelper.h \
typeDefinitions.h
CPPとヘッダーファイルはそれ自体を繰り返していました。繰り返しの含まれていることを削除し、問題が解決しました。
他のヒント
make clean
その後 make
この問題を解決する必要があります。 :)(またはQT creatorのプロジェクトを右クリック - >クリーンしてから、QT creator-> rebuildのプロジェクトを右クリックします)。
動作しない場合は、MakeFileと再構築を手動で削除してからプロジェクトします。
多くの場合、このエラーはqmakeに関連しています。すべてのオブジェクトファイルをビルドディレクトリ内のフラットフォルダーに配置するだけで、2つのソースファイルが異なるフォルダーにある場合でも、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
ビルドフォルダーにソースツリーのフォルダー階層をミラーリングする.proファイルへ。なぜこれがデフォルトではないのかわからない。
問題と解決策は以前に指摘されています ここ しかし、このスレッドで説明した警告メッセージのコンテキストではありません。
私も同じ問題を抱えていました - MakeFileに同じ.cppと.hのファイルを2回含め、私に与えていました Multiple definition of <class/function> first defined here
エラー。
*.proファイルに加えて、問題の.cppおよび.hファイルがqwtfunctionsとして既に追加されていることが判明しました。したがって、上記の回答がどれも機能しなかった場合は、QWTFunctionsも確認してください。