对一个类/文件的未定义引用错误

时间:2012-10-13 22:10:27

标签: c++ codeblocks

  

可能重复:
  What is an undefined reference/unresolved external symbol error and how do I fix it?

我有一个游戏程序,我非常沮丧。一切都运行良好,我决定通过为每组功能制作单独的文件来清理我的程序。代码很长,包含多个文件,但这是基本的想法:

我在Windows XP上使用Code :: Blocks IDE

在我的entity.h中,我已经为该类声明了我的所有函数和变量。在我的entity.cpp中我已经包含它,以及我的所有其他文件。但我仍然得到一个巨大的错误列表,告诉我我对entity.h中的所有方法以及我所有其他头文件都有一个未定义的引用。例如,我有一个函数调用print(),以便更容易打印出来,这就是我从entity.h文件调用的第一个方法。我收到这个错误:

下面是print()的代码:

void print(string f) {
 cout<<f<<endl;
} 

我如何称呼它:

void Player::win(){
entity e;
e.print("You have defeated the orc");

}  错误:

In function 'ZN6Player3winEv': undefined reference to 'entity::print(std::string)'

是的,我确实有一个实体的对象。 它也适用于实体类和文件中的每个其他函数。

2 个答案:

答案 0 :(得分:2)

void print(string f) {
 cout<<f<<endl;
} 

应该是

void entity::print(string f) {
 cout<<f<<endl;
} 

答案 1 :(得分:0)

void print(string f) {
 cout<<f<<endl;
} 

是一个全局函数

如果你想打电话

e.print("You have defeated the orc");

然后你需要一个

的实现
void entity::print(string f)