Skip to content

Errors when building with Clang #1931

@mishmetall

Description

@mishmetall

When building with Clang, I'm getting these errors:

> colcon build --cmake-args -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++

...
In file included from /home/rosdev/ros2_ws/src/mavros/mavros/src/lib/mavros_router.cpp:20:
/home/rosdev/ros2_ws/src/mavros/mavros/include/mavros/mavros_router.hpp:72:32: error: allocating an object of abstract class type 'mavros::router::Endpoint'
  RCLCPP_SMART_PTR_DEFINITIONS(Endpoint)
                               ^
/home/rosdev/ros2_ws/src/mavros/mavros/include/mavros/mavros_router.hpp:103:16: note: unimplemented pure virtual method 'is_open' in 'Endpoint'
  virtual bool is_open() = 0;
               ^
/home/rosdev/ros2_ws/src/mavros/mavros/include/mavros/mavros_router.hpp:104:40: note: unimplemented pure virtual method 'open' in 'Endpoint'
  virtual std::pair<bool, std::string> open() = 0;
                                       ^
/home/rosdev/ros2_ws/src/mavros/mavros/include/mavros/mavros_router.hpp:105:16: note: unimplemented pure virtual method 'close' in 'Endpoint'
  virtual void close() = 0;
               ^
/home/rosdev/ros2_ws/src/mavros/mavros/include/mavros/mavros_router.hpp:107:16: note: unimplemented pure virtual method 'send_message' in 'Endpoint'
  virtual void send_message(
               ^
/home/rosdev/ros2_ws/src/mavros/mavros/include/mavros/mavros_router.hpp:113:16: note: unimplemented pure virtual method 'diag_run' in 'Endpoint'
  virtual void diag_run(diagnostic_updater::DiagnosticStatusWrapper & stat) = 0;
               ^
In file included from /home/rosdev/ros2_ws/src/mavros/mavros/src/lib/uas_data.cpp:19:
In file included from /home/rosdev/ros2_ws/src/mavros/mavros/include/mavros/mavros_uas.hpp:45:
/home/rosdev/ros2_ws/src/mavros/mavros/include/mavros/plugin.hpp:68:32: error: allocating an object of abstract class type 'mavros::plugin::Plugin'
  RCLCPP_SMART_PTR_DEFINITIONS(Plugin)
                               ^
/home/rosdev/ros2_ws/src/mavros/mavros/include/mavros/plugin.hpp:95:25: note: unimplemented pure virtual method 'get_subscriptions' in 'Plugin'
  virtual Subscriptions get_subscriptions() = 0;

MAVROS version and platform

Mavros: 2e20c1c
ROS: Humble, Foxy
Ubuntu: 22.04, 20.04

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions