1

どこを検索しても、この便利なルールが表示され続けます

moc_%.cpp: %.h
   $(MOC) $(DEFINES) $(INCLUDES) $< -o $@

うまくいきません。Makefile は

MOC:= /path/to/moc

.PHONY clean:
    rm moc_*.cpp

moc: moc_file.cpp

#moc_file.cpp: file.h # this works
#    $(MOC) $< -o $@

moc_%.cpp: %.h
    $(MOC) $< -o $@

コメントされていないコメント行は機能しますが、一般的なルールは機能しません。印刷されNo rule to make target 'moc_file.cpp', needed by 'moc'ない理由や、私が間違っていることについて、誰かが洞察を与えることができますか?

4

1 に答える 1

1

パターンルールはmake、天気や時間帯によって使用される場合と使用されない場合があります(私がそれらを気に入らないと言えますか?)。代わりに、適用するターゲットのリストをプレフィックスとして付けて、静的パターンルールに変換します。

moc_file.cpp: moc_%.cpp: %.h
    $(MOC) $< -o $@
于 2013-02-21T18:22:30.270 に答える