首页| 论坛| 消息

标题:【提问】lnk2001问题
作者:flyingwind
日期:2005-11-09 11:22
内容:

我在继承自qt designer做的界面的.h文件中加上 宏Q_OBJECT,就出现这样问题,怎么回事呢?


#1 [XChinux 11-09 11:26]
信息太少,继续加信息啊。
否则无法诊断
#2 [flyingwind 11-09 12:07]
以下是出错信息:
addentity.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall addEntity::qt_property(int,int,class QVariant *)" (?qt_property@addEntity@@UAE_NHHPAVQVariant@@@Z)
addentity.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall addEntity::qt_emit(int,struct QUObject *)" (?qt_emit@addEntity@@UAE_NHPAUQUObject@@@Z)
addentity.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall addEntity::qt_invoke(int,struct QUObject *)" (?qt_invoke@addEntity@@UAE_NHPAUQUObject@@@Z)
addentity.obj : error LNK2001: 无法解析的外部符号 "public: virtual void * __thiscall addEntity::qt_cast(char const *)" (?qt_cast@addEntity@@UAEPAXPBD@Z)
addentity.obj : error LNK2001: 无法解析的外部符号 "public: virtual char const * __thiscall addEntity::className(void)const " (?className@addEntity@@UBEPBDXZ)
addentity.obj : error LNK2019: 无法解析的外部符号 "public: static class QMetaObject * __cdecl addEntity::staticMetaObject(void)" (?staticMetaObject@addEntity@@SAPAVQMetaObject@@XZ) ,该符号在函数 "public: virtual class QMetaObject * __thiscall addEntity::metaObject(void)const " (?metaObject@addEntity@@UBEPAVQMetaObject@@XZ) 中被引用
debug\secconfig_d.exe : fatal error LNK1120: 6 个无法解析的外部命令
为了能写slot我在 addentity.h的开始使用了宏Q_OBJECT,如下:
class addEntity : public addUserForm
{
Q_OBJECT
public:
addEntity(/*const secconfig::SecurityPtr& sec */);
~addEntity();
如果不加Q_OBJECT的话,就可以通过。不过不能用slot
#3 [icekernel 11-10 09:36]
可能是你链接的时候没有加qt的库。
#4 [flyingwind 11-10 15:46]
下面是引用icekernel于2005-11-10 09:36发表的:
可能是你链接的时候没有加qt的库。
加了,只是在继承的头文件中加上Q_OBJECT才会有这个问题,否则的话,正常。
#5 [guxingke 11-11 19:48]
你肯定没有生成.moc文件,所以回报这些错误。通常qt为使用信号和槽机制的类生成对应的.moc文件,你只要重新执行 qmake然后nmake问题就解决了

<< 1 2 >> (1/2)

回复 发表
主题 版块