首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >make未生成moc文件

make未生成moc文件
EN

Stack Overflow用户
提问于 2015-04-09 13:58:15
回答 1查看 610关注 0票数 0

我尝试编译一个qt文件,但是没有为Q_OBJECT对象生成moc。我使用的是Maya的qt发行版。我的makefile.qt文件如下所示,我正在使用make -f makefile.qt myPlugIn.bundle进行编译:

代码语言:javascript
复制
%.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文件时遗漏了什么命令?

EN

回答 1

Stack Overflow用户

发布于 2015-04-09 15:11:26

我最后添加了以下moc代码行:

代码语言:javascript
复制
%.$(EXT):   force

    moc $(@:.$(EXT)=.h) -o moc_$(@:.$(EXT)=.cpp)
    $(MAKE) -f Makefile.qt $(@:.$(EXT)=.mak)
    $(MAKE) -f $(@:.$(EXT)=.mak) $@
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29530851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档