未定义引用'abc :: abc()'并显示Dwarf Error:Offset出现

时间:2012-03-29 09:36:41

标签: c++ compiler-errors

我宣布一个obj:

#include "abc.h"

class xxx
{
public: 
  xxx();
  ~xxx();
  abc* q;
...
};

在.cpp文件中我执行以下操作

此行上的

this->q=new abc();< -error未明确引用abc::abc()

在控制台中也会出现此错误:

  

矮人错误:偏移量(76195)大于或等于.debug_str大小   (1472)。

谁知道什么可能是错的?我正在使用eclipse,fedora 14

3 个答案:

答案 0 :(得分:1)

  

abc::abc()

的未定义引用

这是一个链接错误,它告诉您链接器找不到abc::abc()的定义。

最有可能的是,您只是声明了但没有为类abc定义无参数构造函数 在您的cpp文件中,您应该:

abc::abc()
{

}

如果您已经准备好了,那么您应该确保具有此定义的源cpp文件正确链接到您的项目。

答案 1 :(得分:0)

  

this->q=new abc();< -error在这一行上有未定义的引用   ABC ABC ::()

根据您的错误,您似乎只有abc::abc()的声明,并且没有定义。在源文件中定义abc::abc()或在头文件中将其设为inline

答案 2 :(得分:0)

看起来abc类的实现不包含在构建中。将abc.cpp文件添加到构建中。