Извиняюсь за плохое название вопроса, я не знал, как это задать. Я получаю ошибку LNK2019 при попытке скомпилировать мою игру GLUT и не могу определить причину ошибки.
Ошибка:
main.obj: error LNK2019: unresolved external symbol "public: void __thiscall asteroid::animateAsteroid(void)" (?animateAsteroid@asteroid@@QAEXXZ) referenced in function "void __cdecl idle(void)" (?idle@@YAXXZ)
asteroid.h
class asteroid
{
public:
asteroid(void); //constructer
~asteroid(void); //deconstructer
void Draw();
void createAsteroid();
float generateAsteroidLocation(float a, float b);
void animateAsteroid();
};
asteroid.cpp (функция неисправности)
#include "asteroid.h"#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define _USE_MATH_DEFINES
#include <math.h>
#include <ctime>
#include <GL/glut.h>
float asteroidX,asteroidY, V;
bool locationGenerated = false;
asteroid::asteroid(void){
}
asteroid::~asteroid(void){
}
void animateAsteroid(){
float dt = 3500;
float Dx = 25 - asteroidX;
float Dy = 25 - asteroidY;
float Cx = asteroidX + Dx / sqrt(Dx*Dx+Dy*Dy) * V * dt;
float Cy = asteroidY + Dy / sqrt(Dx*Dx+Dy*Dy) * V * dt;
asteroidX = Cx;
asteroidY = Cy;
}
Main.cpp (функция, где я получаю ошибку)
void idle(void)
{
glutPostWindowRedisplay(glutGetWindow());
Asteroid.animateAsteroid();
}
Я был бы очень признателен за любую помощь в решении этой проблемы.
Спасибо, Дэн.
В файле asteroid.cpp вам не хватает имени класса в объявлении метода:
void asteroid::animateAsteroid(){
...
Других решений пока нет …