我搜索的每个地方我都会看到这个有用的规则
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'
任何人都可以提供任何见解,为什么它没有或我做错了什么?
答案 0 :(得分:1)
make
可能会也可能不会使用图案规则,具体取决于天气或时间(你能告诉我不喜欢它们吗?)。相反,将它们添加到静态模式规则中,方法是在它们前面添加您希望它们应用于的目标列表:
moc_file.cpp: moc_%.cpp: %.h
$(MOC) $< -o $@