【发布时间】:2010-09-23 08:51:43
【问题描述】:
我刚刚遇到以下错误(并在网上找到了解决方案,但堆栈溢出中不存在):
(.gnu.linkonce.[stuff]): 未定义 参考[方法] [对象 文件]:(.gnu.linkonce.[stuff]): 未定义的对 `typeinfo 的引用 [类名]'
为什么会出现这些“未定义的 typeinfo 引用”链接器错误之一?
(如果你能解释幕后发生的事情,可以加分。)
【问题讨论】:
-
我知道这是一个旧帖子,但我今天也遇到了同样的问题,解决方法就是在基类中将我的虚函数定义为 virtual abc() {},而不是 virtual abc( );这给出了错误。
-
比
virtual void abc() =0;更好(如果从未调用过基本版本) -
@Nav:如果你像这样定义
abc(),你很容易忘记在派生类中重新定义abc(),并认为一切正常,因为你仍然可以毫无问题地调用函数.在this article 中找到了一个实现纯虚函数的好做法,就是让函数打印“Pure virtual function called”然后使程序崩溃。 -
我遇到了同样的错误。我发现更改对“lib”的引用顺序可能会有所帮助。我刚刚将问题库从列表的开头移到了末尾,这解决了问题
-
GAH。这至少是我第二次准确导航到此页面,阅读@dhardy 的评论并对自己说“Doh”。只花了 45 分钟试图追踪一些疯狂的行为,我只需要
= 0;。