【问题标题】:Generating MOC for new QOBJECT files in visual studio 2010在 Visual Studio 2010 中为新 QOBJECT 文件生成 MOC
【发布时间】:2014-06-01 20:33:12
【问题描述】:

我使用 qmake 创建了一个项目,它自动为直接或间接继承 QObject 的类生成 moc 文件。但是,如果我添加一个继承 QObject 的新类,QT 插件在构建过程中不会生成 MOC 文件。我应该调整哪些设置,以便每次添加新的 QObject 文件时可以自动执行此操作?

【问题讨论】:

    标签: c++ visual-studio-2010 qt user-interface


    【解决方案1】:

    如果您的自定义类没有自动 moc'ed,您可能忘记在类声明中添加 Q_OBJECT 宏或将 QObject 作为在多重继承的情况下继承的第一个类(类的顺序)您的派生类继承事务)。如果不是您的情况,您可能需要阅读以下内容:

    http://truth2.wordpress.com/2010/09/04/custom-build-rules-for-qt-under-visual-studio-2010/

    顺便说一句:QT 版本有其细微差别,因此如果您告知您使用的版本会很有帮助。

    【讨论】:

    • 我使用的是 Qt 4.8.6。我忘了提。但这种联系奏效了。为这些文件添加自定义构建规则后,它工作正常。谢谢。
    【解决方案2】:

    我只是找到了一种新的方法来处理“添加新的.h/.cpp文件后没有生成moc_*.cpp文件”错误。

    首先,您转到“解决方案资源管理器->右键单击新.h文件的属性页”,然后将构建更改为“自定义构建工具”。

    然后,你应该找到一个成功生成“moc_*”的.h文件,并将“自定义构建工具->常规”中的所有内容复制到新的.h文件设置页面。

    之后,构建您的项目。

    最后,将生成的“moc_*”文件添加到您的项目中。

    完成!现在你可以像往常一样构建它了。

    【讨论】:

    • 我遇到了同样的问题,并在this 问题下发布了我的解决方案。我在 VS 2015 中添加了解决此问题所需的一些额外步骤。
    猜你喜欢
    • 1970-01-01
    • 2012-08-10
    • 2013-06-07
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 2011-02-13
    • 1970-01-01
    相关资源
    最近更新 更多