Moc Qt标头自动使用make

时间:2014-02-27 19:36:14

标签: c++ qt makefile moc

我正在尝试用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。

感谢。

1 个答案:

答案 0 :(得分:2)

如果makefile中的第一个规则有多个目标,则只有规则中的第一个目标成为默认目标,而不是整个列表。

因此,我认为你需要定义一个依赖于$(MOC_SOURCES)的“全部”目标。