ctu-mrs / mrs_uav_managers

High-level UAV managers in ROS, part of the "mrs_uav_core" package.
https://github.com/ctu-mrs/mrs_uav_core
BSD 3-Clause "New" or "Revised" License
13 stars 6 forks source link

Pure virtual destructor without a definition #1

Closed petrlmat closed 4 years ago

petrlmat commented 4 years ago

Pure virtual destructors https://github.com/ctu-mrs/mrs_uav_managers/blob/2580ce188a411c763bc7c14543f12baa6482506d/include/mrs_uav_managers/controller.h#L32 and https://github.com/ctu-mrs/mrs_uav_managers/blob/2580ce188a411c763bc7c14543f12baa6482506d/include/mrs_uav_managers/tracker.h#L50 are missing function definitions.

The definition of a pure virtual function may be provided (and must be provided if the pure virtual is the destructor). https://en.cppreference.com/w/cpp/language/abstract_class

So far it did not cause any problems, but when running the mrs_uav_system on arm64 architecture, undefined symbol runtime errors appear: /opt/ros/melodic/lib/nodelet/nodelet: symbol lookup error: /home/mrs/mrs_workspace/devel/lib//libMpcTracker.so: undefined symbol: _ZN16mrs_uav_managers7TrackerD2Ev

mrs@xavier-agx:~$ c++filt _ZN16mrs_uav_managers7TrackerD2Ev
mrs_uav_managers::Tracker::~Tracker()