make没有生成moc文件

No moc file is generated by make

本文关键字:moc 文件 make      更新时间:2023-10-16

我试图编译一个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) $@