我尝试编译一个qt文件,但是没有为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文件时遗漏了什么命令?
发布于 2015-04-09 15:11:26
我最后添加了以下moc代码行:
%.$(EXT): force
moc $(@:.$(EXT)=.h) -o moc_$(@:.$(EXT)=.cpp)
$(MAKE) -f Makefile.qt $(@:.$(EXT)=.mak)
$(MAKE) -f $(@:.$(EXT)=.mak) $@https://stackoverflow.com/questions/29530851
复制相似问题