私のメイクファイルはエラーで失敗します:
Makefile:34: *** multiple target patterns. Stop.
それは本当にどういう意味ですか、どうすれば修正できますか?
( GNU make manual 、Captain Obviousによって書かれているが、役に立たない)。
それを見つけた。フォームにルールがありました:
$(FOO): bar
FOO
は、コロンを含むエラーメッセージで汚染されたシェルコマンドから設定されました。
Makefileにありました
MAPS+=reverse/db.901:550:2001.ip6.arpa
lastserial: ${MAPS}
./updateser ${MAPS}
それは、:
ファイル名。私はこれを解決しました
--------注意 // vv MAPS + = reverse/db.901 \:550 \:2001.ip6.arpa lastserial:$ {MAPS} ./updateser $ {MAPS}
元の答えのようにコロンをエスケープする必要があることに加えて、インデントがオフの場合、同じ問題が発生する可能性があります。あるメイクファイルでは、スペースをタブに置き換える必要があったため、エラーを回避できました。
Cygwinのmakeファイルと自動生成されたファイルを使用しているためにこのエラーが発生した場合は、次のsedで修正できます。
sed -e 's@\\\([^ ]\)@/\1@g' -e 's@[cC]:@/cygdrive/c@' -i filename.d
最初の置換でエスケープリストにスペース以外の文字を追加する必要があるかもしれませんが、アイデアは得られます。ここでの概念は、/ cygdrive/cがcのエイリアスであるということです:cygwinのmakeはそれを認識します。
そして同様にスローすることがあります
-e 's@^ \+@\t@'
偶然にスペースで始めた場合に備えて(ただし、これは通常、「区切り文字の欠落」エラーになりますが)。
同じエラーが発生しました。苦労した後、フォルダ名の「スペース」が原因であることがわかりました。
例えば :
以前の私のフォルダ名は:"Qt Projects"
後で私はそれを次のように変更しました:"QtProjects"
私の問題は解決しました。
その非常に単純ですが、時には大きな問題です。
この問題(ターゲット名にコロン)があったのは、-n
私のGREP_OPTIONS
環境変数。どうやら、これによりconfigure
がMakefile
を誤って生成しました。