Все в порядке, и последняя проблема настолько раздражает. Компиляция велик, но ссылка не удается:Что мне делать с этой странной ошибкой?
bash-3.2$ make
g++ -Wall -c -g Myworld.cc
g++ -Wall -g solvePlanningProblem.o Position.o AStarNode.o PRM.o PRMNode.o World.o SingleCircleWorld.o Myworld.o RECTANGLE.o CIRCLE.o -o solvePlanningProblem
**Undefined symbols:
"vtable for Obstacle", referenced from:
Obstacle::Obstacle()in Myworld.o
"typeinfo for Obstacle", referenced from:
typeinfo for RECTANGLEin RECTANGLE.o
typeinfo for CIRCLEin CIRCLE.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [solvePlanningProblem] Error 1**
Obstacle.hh
#ifndef Obstacle_hh
#define Obstacle_hh
#include <vector>
#include <iostream>
class Obstacle{
public:
Obstacle(){}
virtual bool collidesWith(double x,double y);
virtual void writeMatlabDisplayCode(std::ostream &fs);
virtual ~Obstacle(){}
};
#endif
В чем проблема у меня есть? Я могу опубликовать любой код, необходимый для его анализа.
У вас есть класс «Препятствие», если это так, у каких исходных файлов есть определения для его функций-членов? –
дубликат? http://stackoverflow.com/questions/1693634/undefined-symbols-vtable-for-and-typeinfo-for – Amro
yes, Class Obstacle - базовый класс с двумя подклассами CIRCLE и RECTANGLE. все они имеют две общие виртуальные функции. – Lisa