0

我正在尝试使用 make 使用 Q_OBJECT 宏来 moc 所有头文件。这是我现在所拥有的。

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。

谢谢。

4

1 回答 1

2

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

因此,我相信您需要根据 $(MOC_SOURCES) 定义上面的“全部”目标。

于 2014-02-27T19:53:27.887 回答