Возможный дубликат:
Что такое неопределенная ссылка / неразрешенная внешняя ошибка символа и как ее исправить?
У меня есть игровая программа, и я очень разочарован. Все работало нормально, и я решил очистить свою программу, создав отдельные файлы для каждого набора функций. Код очень длинный с несколькими файлами, но вот основная идея:
Я на Windows XP, используя Code :: Blocks IDE
В моем entity.h я объявил все свои функции и переменные для этого класса. В моем файле entity.cpp я включил его, а также во все остальные мои файлы. Но я все еще получаю огромный список ошибок, которые говорят мне, что у меня есть неопределенная ссылка на все методы в entity.h, а также на все мои другие заголовочные файлы. Например, у меня есть вызов функции print (), чтобы упростить распечатку, и это первый метод, который я вызываю из файла entity.h. Я получаю эту ошибку:
Вот код для печати ():
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)'
И да, у меня есть объект сущности.
Это также происходит для каждой отдельной функции в классе и файле сущности.
void print(string f) {
cout<<f<<endl;
}
должно быть
void entity::print(string f) {
cout<<f<<endl;
}
void print(string f) {
cout<<f<<endl;
}
это глобальная функция
если хочешь позвонить
e.print("You have defeated the orc");
тогда вам нужна реализация для
void entity::print(string f)