moc Makefile规则

时间:2013-02-21 12:56:12

标签: makefile gnu-make moc

我搜索的每个地方我都会看到这个有用的规则

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'任何人都可以提供任何见解,为什么它没有或我做错了什么?

1 个答案:

答案 0 :(得分:1)

make可能会也可能不会使用图案规则,具体取决于天气或时间(你能告诉我不喜欢它们吗?)。相反,将它们添加到静态模式规则中,方法是在它们前面添加您希望它们应用于的目标列表:

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