【发布时间】:2014-06-01 20:33:12
【问题描述】:
我使用 qmake 创建了一个项目,它自动为直接或间接继承 QObject 的类生成 moc 文件。但是,如果我添加一个继承 QObject 的新类,QT 插件在构建过程中不会生成 MOC 文件。我应该调整哪些设置,以便每次添加新的 QObject 文件时可以自动执行此操作?
【问题讨论】:
标签: c++ visual-studio-2010 qt user-interface
我使用 qmake 创建了一个项目,它自动为直接或间接继承 QObject 的类生成 moc 文件。但是,如果我添加一个继承 QObject 的新类,QT 插件在构建过程中不会生成 MOC 文件。我应该调整哪些设置,以便每次添加新的 QObject 文件时可以自动执行此操作?
【问题讨论】:
标签: c++ visual-studio-2010 qt user-interface
如果您的自定义类没有自动 moc'ed,您可能忘记在类声明中添加 Q_OBJECT 宏或将 QObject 作为在多重继承的情况下继承的第一个类(类的顺序)您的派生类继承事务)。如果不是您的情况,您可能需要阅读以下内容:
http://truth2.wordpress.com/2010/09/04/custom-build-rules-for-qt-under-visual-studio-2010/
顺便说一句:QT 版本有其细微差别,因此如果您告知您使用的版本会很有帮助。
【讨论】:
我只是找到了一种新的方法来处理“添加新的.h/.cpp文件后没有生成moc_*.cpp文件”错误。
首先,您转到“解决方案资源管理器->右键单击新.h文件的属性页”,然后将构建更改为“自定义构建工具”。
然后,你应该找到一个成功生成“moc_*”的.h文件,并将“自定义构建工具->常规”中的所有内容复制到新的.h文件设置页面。
之后,构建您的项目。
最后,将生成的“moc_*”文件添加到您的项目中。
完成!现在你可以像往常一样构建它了。
【讨论】: