我正在尝试用make使用Q_OBJECT宏来编写所有头文件。这就是我现在所拥有的。
HEADERS = *.h
MOCS := $(shell grep -l Q_OBJECT $(HEADERS))
MOC_SOURCES := $(MOCS:%.h=moc_%.cpp)
$(MOC_SOURCES) : moc_%.cpp: %.h
@echo "Building Moc: $@ from $<"
/opt/Qt5.1.1/5.1.1/gcc/bin/moc $< -o $@
但我在这个解决方案中遇到了问题。只有第一个文件是moc'ing。
感谢。
答案 0 :(得分:2)
如果makefile中的第一个规则有多个目标,则只有规则中的第一个目标成为默认目标,而不是整个列表。
因此,我认为你需要定义一个依赖于$(MOC_SOURCES)的“全部”目标。