【问题标题】:No moc file is generated by makemake 没有生成 moc 文件
【发布时间】:2015-04-09 05:58:15
【问题描述】:

我尝试编译一个 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 文件?

【问题讨论】:

    标签: c++ qt makefile moc


    【解决方案1】:

    我终于添加了以下moc行:

    %.$(EXT):   force
    
        moc $(@:.$(EXT)=.h) -o moc_$(@:.$(EXT)=.cpp)
        $(MAKE) -f Makefile.qt $(@:.$(EXT)=.mak)
        $(MAKE) -f $(@:.$(EXT)=.mak) $@
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多