- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我在构建应用程序时收到以下链接器错误。
HIMyClass.obj:: error: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall CHIMyClass::metaObject(void)const " (?metaObject@CHIMyClass@@UBEPBUQMetaObject@@XZ) File not found : HIMyClass.obj
HIMyClass.obj:: error: unresolved external symbol "public: virtual void * __thiscall CHIMyClass::qt_metacast(char const *)" (?qt_metacast@CHIMyClass@@UAEPAXPBD@Z) File not found : HIMyClass.obj
HIMyClass.obj:: error: unresolved external symbol "public: virtual int __thiscall CHIMyClass::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@CHIMyClass@@UAEHW4Call@QMetaObject@@HPAPAX@Z) File not found : HIMyClass.obj
我的类(class)声明是这样的
class CHIMyClass:public QDialog
{
Q_OBJECT
....
};
当我评论 Q_OBJECT 时,链接器错误消失(显然我无法使用信号和插槽)。我使用 Qt Creator 作为 IDE 和 Qt 4.5.3。当我给出 Rebuild All 时,肯定会调用 QMake。我想,它的 moc_* 文件的生成是问题所在。我使用的是 Windows XP 和 cl 作为编译器。
此链接器错误背后的原因可能是什么?
最佳答案
此类错误通常意味着您没有将类的标题添加到 pro 文件中的“HEADERS”变量中(元对象编译器仅为此变量中列出的标题生成 moc_ 文件)。更改 .pro 文件后记得运行 qmake!
关于c++ - Q_OBJECT 链接器错误!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3264259/
在Qt中,我们知道Q_OBJECT是一个宏。在这种情况下,宏意味着什么?特别是我发现术语“宏”可能有几种不同的定义。 谢谢。 最佳答案 宏仅仅意味着Q_OBJECT实际上是一个C++宏。它在 src/
这个类没问题: #include class LiveImageItem : public QThread { Q_OBJECT public: LiveImageItem(QPix
我收到的错误: g++ -c -g -I/usr/lib/qt-3.3/include TCPEchoServer.cpp Product.h:22: error: ISO C++ forbids d
我在构建应用程序时收到以下链接器错误。 HIMyClass.obj:: error: unresolved external symbol "public: virtual struct QMetaO
文档指出: The Q_OBJECT macro must appear in the private section of a class definition that declares its
有个类似的问题here正在寻找解决方法和不错的指南 here它描述了 Qt 中的元对象系统。但这并没有直接解释为什么不能在元对象系统中使用模板类。这是一个令人讨厌的限制。 有人知道为什么吗? 最佳答案
有个类似的问题here正在寻找解决方法和不错的指南 here它描述了 Qt 中的元对象系统。但这并没有直接解释为什么不能在元对象系统中使用模板类。这是一个令人讨厌的限制。 有人知道为什么吗? 最佳答案
众所周知,Q_OBJECT 是实例,不可复制。 是否有任何一种语法糖可以复制任意 QObject 派生类的所有静态和动态属性? 这看起来很简单,但我找不到任何引用 - 显然自己实现一个应该很简单 -
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
当我在 Qt Creator 中创建一个新的 Q_OBJECT 类时,它会创建这个默认构造函数。我想添加另一个参数以便我可以传递用户输入,但我不确定如何执行此操作,因为 QObject 是第一个参数并
这是我的代码: 工具.h #include namespace Tinject { class ProbeCreator : public QObject {
我编写了一个扩展 QWidget 类的自定义 Qt 小部件。 让我们考虑以下代码: .h #ifndef SS_TEST_H #define SS_TEST_H #include class Tes
为什么我们通常只在私有(private)部分给出 Q_OBJECT? 我尝试了一个示例程序,在公共(public)部分给出它,我发现没有区别。 如果有人知道,你能告诉我原因吗。 最佳答案 默认情况下,
我有一个不使用 qmake 的遗留版本,但我想添加 QUdpSocket 并将其与信号和插槽连接。我有一个使用 Q_OBJECT 的类。如果我希望信号和槽可用但我没有使用 qmake,我需要做什么才能
我正在开发一个包含多个插件的 c++/Qt 程序。对于每个类,我必须定义一个如下所示的插件接口(interface): //my class class qwerty; //my interface
我有一个由 QFutureWatcher 触发的插槽。我正在尝试转换发件人以获得结果 QFutureWatcher>* QFW = qobject_cast>*>(sender()); 但不断得到 e
如何通过元编程制作基于 Q_OBJECT 的类(具有信号和/或槽的类)?我不在乎它是模板还是预处理器,两者似乎都不起作用,但我确实也需要它。 我想要的是能够将任意函数绑定(bind)到 Qt 信号。
我在一个项目中工作,其中在我需要继承的类中使用了 Q_OBJECT 宏。 已经定义了 Q_OBJECT 的类如下所示, class cBaseObject : public QObject, publ
我在 OSX Lion 中运行 QtCreator,每当我创建一个需要 Q_OBJECT 宏的类时,我都会在尝试构建我的应用程序时遇到错误。该类的代码如下,我收到的错误也是如此。有什么线索吗? 注意:
问题 自从从 Qt 5.10 升级到 Qt 5.11 后,我开始无法生成带有 QDoc 的文档。对于我现有的项目。 许多问题之一是文档中缺少函数,尽管源代码中存在相应的注释。 研究 我已设法将问题缩小
我是一名优秀的程序员,十分优秀!