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

谢谢。

有帮助吗?

解决方案

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

因此,我相信您需要定义上面的“所有”目标依赖于$(MoC_Sources)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top