除了这个未定义符号错误,一切正常运行:
bash-3.2$ make
g++ -Wall -g solvePlanningProblem.o Position.o AStarNode.o PRM.o PRMNode.o Worl.o SingleCircleWorld.o Myworld.o RECTANGLE.o CIRCLE.o -o solvePlanningProblem
`Undefined symbols:
"Obstacle::~Obstacle()", referenced from:
Myworld::~Myworld()in Myworld.o
Myworld::~Myworld()in Myworld.o
Myworld::~Myworld()in Myworld.o
"RECTANGLE::RECTANGLE()", referenced from:
Myworld::readObstacles(std::basic_istream<char, std::char_traits<char> >&
in Myworld.o
"CIRCLE::CIRCLE()", referenced from:
Myworld::readObstacles(std::basic_istream<char, std::char_traits<char> >&
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`
这是一个很奇怪的错误。构造函数或析构函数有问题吗? 任何建议都会有所帮助。
在所有构造函数和析构函数后添加{}之后,错误已经减少到:
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