質問

Makeを使ってq_objectマクロを使用してすべてのヘッダーファイルをMCにしようとしています。これが私が今持っているものです。

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