Ошибка компоновки: "неопределенная ссылка на vtable"
У меня проблема с моим кодом. Это работало, но когда я решил разделить его на несколько файлов, я получил ошибку компоновки.
Я искал другие подобные сообщения, но все еще не могу найти, что не так. Это мой код:
.час
#ifndef VALIDITYCHECKER_H
#define VALIDITYCHECKER_H
//#including various libraries ...
namespace ob = ompl::base;
class ValidityChecker : public ob::StateValidityChecker
{
public:
ValidityChecker(const ob::SpaceInformationPtr& si) :
ob::StateValidityChecker(si) {}
bool isValid(const ob::State* state) const override
{
return this-> clearance(state) > 0.0;
}
double clearance(const ob::State* state) const override;
};
#endif
.cpp
#include "push_optimal_planner/validitychecker.h"
namespace ob = ompl::base;
namespace og = ompl::geometric;
double clearance(const ob::State* state)
{ //some code for the function }
Я получаю эту ошибку:
CMakeFiles/planning.dir/src/planning.cpp.o: nella funzione "ValidityChecker::ValidityChecker(std::shared_ptr<ompl::base::SpaceInformation> const&)":
/home/simone/catkin_ws/src/push_optimal_planner/include/push_optimal_planner/validitychecker.h:44: riferimento non definito a "vtable for ValidityChecker"
collect2: error: ld returned 1 exit status
("riferimento не определено" vtable "это итальянский, это означает: " неопределенная ссылка на `vtable")