我试图编译一个qt-cpp文件,但没有为Q_OBJECT对象生成moc。我使用的是Maya的qt分布。我的makefile.qt文件如下所示,我正在使用make-f makefile.qt myPlugIn.bundle:进行编译
%.mak : %.pro qtconfig
$(QMAKE) -o - QMAKE_CC=$(CC) QMAKE_CXX=$(C++) $< |
sed -e '/^TARGET.*=/s?=.*$$?= $$(QMAKE_TARGET).$(EXT)?'
-e 's?-framework QtCore?$$(MAYA_LOCATION)/MacOS/QtCore?'
-e 's?-framework QtGui?$$(MAYA_LOCATION)/MacOS/QtGui?'
-e 's?-framework QtOpenGL?$$(MAYA_LOCATION)/MacOS/QtOpenGL?'
-e 's?-framework QtTest?$$(MAYA_LOCATION)/MacOS/QtTest?'
-e 's?-framework QtXml?$$(MAYA_LOCATION)/MacOS/QtXml?'
-e 's?-dynamiclib??' -e 's?-mtune=generic??' >$@
PLUGINS = helixQtCmd.$(EXT)
qtForms.$(EXT)
saveSwatchesCmd.$(EXT)
ifeq ($(QMAKE),)
all:
@echo "Qt not found. Qt-based plug-ins will not be built."
else
all: $(PLUGINS)
endif
# For each plugin, make sure that its individual Makefile is up-to-date then
# use that Makefile to build the plugin.
.PHONY: force
%.$(EXT): force
$(MAKE) -f Makefile.qt $(@:.$(EXT)=.mak)
$(MAKE) -f $(@:.$(EXT)=.mak) $@
clean:
rm -f $(PLUGINS:.$(EXT)=.o) $(PLUGINS:.$(EXT)=.mak)
moc_* ui_* qrc_*
Clean: clean
rm -f $(PLUGINS)
我缺少什么命令来生成这个moc文件?
我最后添加了以下moc行:
%.$(EXT): force
moc $(@:.$(EXT)=.h) -o moc_$(@:.$(EXT)=.cpp)
$(MAKE) -f Makefile.qt $(@:.$(EXT)=.mak)
$(MAKE) -f $(@:.$(EXT)=.mak) $@