使用Qt 5.4产生lnk2001的问题

何以诚 2015-02-03 12:27:39
问题描述:前几天学习Qt,打算做一个源码编辑器,其中我到网上下载了一个组件QScintilla。并编译,并且使用如下的方式运行成功
但是之后我正式写代码的时候,使用的是公有继承的方式,如图
此时编译器报错,并且让我非常困惑,其报错信息如下:
moc_chanEditerWidget.obj : error LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const QsciScintilla::staticMetaObject" (?staticMetaObject@QsciScintilla@@2UQMetaObject@@B)
1>F:\qt_project\chanEditer\x64\Debug\\chanEditer.exe : fatal error LNK1120: 1 个无法解析的外部命令
这使得我非常困惑,后来我做了实验,当继承QsciScintilla时,不能使用Q_Object,如果使用了必定报错,这个实验代码如下:

不知前辈们可有解决的方法,我愿意洗耳恭听,如果谁能给我解答,我将万分感谢,3ks!
...全文
640 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
X-Programer 2015-11-17
  • 打赏
  • 举报
回复
引用 5 楼 u013022222 的回复:
引用 4 楼 fly_dragon_fly 的回复:
以二进制打开这个 lib 搜 一下 staticMetaObject@QsciScintilla有没有,
谢谢您的解答,我已经找到问题了,其实这个库安装了不需要设置vs的include ...等路径,因为我发现 安装的时候它自动拷贝到了qt的安装目录,不过有一点需要注意,就要要设置连接器的路径到这个库的release目录下,这样才能让其找到moc文件,就这样就可以了
我也遇到过这个问题,你是怎么解决的
何以诚 2015-02-04
  • 打赏
  • 举报
回复
引用 4 楼 fly_dragon_fly 的回复:
以二进制打开这个 lib 搜 一下 staticMetaObject@QsciScintilla有没有,
谢谢您的解答,我已经找到问题了,其实这个库安装了不需要设置vs的include ...等路径,因为我发现 安装的时候它自动拷贝到了qt的安装目录,不过有一点需要注意,就要要设置连接器的路径到这个库的release目录下,这样才能让其找到moc文件,就这样就可以了
fly_dragon_fly 2015-02-04
  • 打赏
  • 举报
回复
以二进制打开这个 lib 搜 一下 staticMetaObject@QsciScintilla有没有,
野男孩 2015-02-03
  • 打赏
  • 举报
回复
那就不清楚了。。。重点还是看看环境设置吧,bless~
何以诚 2015-02-03
  • 打赏
  • 举报
回复
引用 1 楼 coding_hello 的回复:
static struct QMetaObject const QsciScintilla::staticMetaObject 这个函数编译器没找到实现的地方,通常是有lib没有加到工程里来。
我在VS连接器选项设置了 qscintilla2.lib。。。这个是release里面的lib
野男孩 2015-02-03
  • 打赏
  • 举报
回复
static struct QMetaObject const QsciScintilla::staticMetaObject 这个函数编译器没找到实现的地方,通常是有lib没有加到工程里来。

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧