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 回答