首页| 论坛| 消息

标题:带有Q_OBJECT宏的类无法导出,编译报错
作者:xhh@cy
日期:2019-02-15 10:45
内容:

#pragma once
#include
class Q_DECL_EXPORT Test :public QObject
{
Q_OBJECT
public:
void fun() {};
};
上述代码封装在库,外部调用Test t;t.fun(); 编译不通过
报错如下:
main.obj : error LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const Test::staticMetaObject" (?staticMetaObject@Test@@2UQMetaObject@@B)
我将Q_DECL_EXPORT 换成 _declspec(dllexport)也是同样的错误。


#1 [dbzhang800 02-15 14:08]
运行qmake了吗,这个东西在.h中还是在.cpp中?
#2 [yanche 02-18 12:25]
你的Test 这个类是dll中的吗?如果是dll中封装的,那么调用失败,多半和你的调用方法有关系。
建议你先查找下 Lib 依赖是否添加了
#3 回 dbzhang800 的帖子 [xhh@cy 02-21 08:17]
dbzhang800:运行qmake了吗,这个东西在.h中还是在.cpp中? (2019-02-15 14:08) 
.h 啊,执行qmake 了,你之前导出过带有Q_OBJECT宏的类能用?我把宏去掉编译就通过了。
#4 回 yanche 的帖子 [xhh@cy 02-21 08:18]
yanche:你的Test 这个类是dll中的吗?如果是dll中封装的,那么调用失败,多半和你的调用方法有关系。
建议你先查找下 Lib 依赖是否添加了 (2019-02-18 12:25) 
Lib依赖添加了,把那个宏注释掉就没有问题了

回复 发表
主题 版块