Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot build as a ROS2 package because of reference to outdated spdlog #344

Open
slim71 opened this issue Sep 23, 2023 · 13 comments
Open

Cannot build as a ROS2 package because of reference to outdated spdlog #344

slim71 opened this issue Sep 23, 2023 · 13 comments

Comments

@slim71
Copy link

slim71 commented Sep 23, 2023

Issue template

  • Hardware description: Lenovo Yoga 720
  • OS: Ubuntu 22.04
  • Installation type: ROS2 package (using colcon build)
  • Version or commit hash: tag v2.4.0 and newer

Steps to reproduce the issue

Just follow the installation instructions to build within a ROS2 workspace, then try to build with colcon build.

Expected behavior

The project should build successfully with no issues

Actual behavior

The project does not build, returning errors related to the fmt library, linked through spdlog:

$ colcon build 
Starting >>> microxrcedds_agent
--- stderr: microxrcedds_agent                             
CMake Warning (dev) at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
  The package name passed to `find_package_handle_standard_args` (tinyxml2)
  does not match the name of the calling package (TinyXML2).  This can lead
  to problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  cmake/modules/FindTinyXML2.cmake:40 (find_package_handle_standard_args)
  /opt/ros/humble/share/fastrtps/cmake/fastrtps-config.cmake:51 (find_package)
  CMakeLists.txt:153 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/publisher/Publisher.cpp:16:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:174: CMakeFiles/microxrcedds_agent.dir/src/cpp/publisher/Publisher.cpp.o] Error 1
gmake[5]: *** Waiting for unfinished jobs....
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/topic/Topic.cpp:17:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:160: CMakeFiles/microxrcedds_agent.dir/src/cpp/topic/Topic.cpp.o] Error 1
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/participant/Participant.cpp:16:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:146: CMakeFiles/microxrcedds_agent.dir/src/cpp/participant/Participant.cpp.o] Error 1
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/Root.hpp:18,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:20:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
In file included from /usr/include/spdlog/fmt/fmt.h:25,
                 from /usr/include/spdlog/common.h:36,
                 from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/Root.hpp:18,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:20:
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = eprosima::uxr::IPv4EndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [52], unsigned int, eprosima::uxr::IPv4EndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [52], unsigned int, eprosima::uxr::IPv4EndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [52], unsigned int, eprosima::uxr::IPv4EndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::IPv4EndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::IPv4EndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[52], unsigned int&, eprosima::uxr::IPv4EndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1031:17:   required from ‘void eprosima::uxr::Processor<EndPoint>::check_heartbeats() [with EndPoint = eprosima::uxr::IPv4EndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1041:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
 1579 |       formattable,
      |       ^~~~~~~~~~~
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = eprosima::uxr::IPv6EndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [52], unsigned int, eprosima::uxr::IPv6EndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [52], unsigned int, eprosima::uxr::IPv6EndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [52], unsigned int, eprosima::uxr::IPv6EndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::IPv6EndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::IPv6EndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[52], unsigned int&, eprosima::uxr::IPv6EndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1031:17:   required from ‘void eprosima::uxr::Processor<EndPoint>::check_heartbeats() [with EndPoint = eprosima::uxr::IPv6EndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1042:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = eprosima::uxr::CanEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [52], unsigned int, eprosima::uxr::CanEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [52], unsigned int, eprosima::uxr::CanEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [52], unsigned int, eprosima::uxr::CanEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::CanEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::CanEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[52], unsigned int&, eprosima::uxr::CanEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1031:17:   required from ‘void eprosima::uxr::Processor<EndPoint>::check_heartbeats() [with EndPoint = eprosima::uxr::CanEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1043:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = eprosima::uxr::SerialEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [52], unsigned int, eprosima::uxr::SerialEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [52], unsigned int, eprosima::uxr::SerialEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [52], unsigned int, eprosima::uxr::SerialEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::SerialEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::SerialEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[52], unsigned int&, eprosima::uxr::SerialEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1031:17:   required from ‘void eprosima::uxr::Processor<EndPoint>::check_heartbeats() [with EndPoint = eprosima::uxr::SerialEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1044:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = eprosima::uxr::MultiSerialEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [52], unsigned int, eprosima::uxr::MultiSerialEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [52], unsigned int, eprosima::uxr::MultiSerialEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [52], unsigned int, eprosima::uxr::MultiSerialEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::MultiSerialEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::MultiSerialEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[52], unsigned int&, eprosima::uxr::MultiSerialEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1031:17:   required from ‘void eprosima::uxr::Processor<EndPoint>::check_heartbeats() [with EndPoint = eprosima::uxr::MultiSerialEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1045:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = eprosima::uxr::CustomEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [52], unsigned int, eprosima::uxr::CustomEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [52], unsigned int, eprosima::uxr::CustomEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [52], unsigned int, eprosima::uxr::CustomEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::CustomEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::CustomEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[52], unsigned int&, eprosima::uxr::CustomEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1031:17:   required from ‘void eprosima::uxr::Processor<EndPoint>::check_heartbeats() [with EndPoint = eprosima::uxr::CustomEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1046:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = const eprosima::uxr::IPv4EndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [23], unsigned int, const eprosima::uxr::IPv4EndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [23], unsigned int, eprosima::uxr::IPv4EndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [23], unsigned int, const eprosima::uxr::IPv4EndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::IPv4EndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::IPv4EndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[23], unsigned int&, const eprosima::uxr::IPv4EndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:113:9:   required from ‘void eprosima::uxr::SessionManager<EndPoint>::destroy_session(const EndPoint&) [with EndPoint = eprosima::uxr::IPv4EndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:264:40:   required from ‘bool eprosima::uxr::Processor<EndPoint>::process_create_client_submessage(eprosima::uxr::InputPacket<EndPoint>&) [with EndPoint = eprosima::uxr::IPv4EndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1041:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = const eprosima::uxr::IPv6EndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [23], unsigned int, const eprosima::uxr::IPv6EndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [23], unsigned int, eprosima::uxr::IPv6EndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [23], unsigned int, const eprosima::uxr::IPv6EndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::IPv6EndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::IPv6EndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[23], unsigned int&, const eprosima::uxr::IPv6EndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:113:9:   required from ‘void eprosima::uxr::SessionManager<EndPoint>::destroy_session(const EndPoint&) [with EndPoint = eprosima::uxr::IPv6EndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:264:40:   required from ‘bool eprosima::uxr::Processor<EndPoint>::process_create_client_submessage(eprosima::uxr::InputPacket<EndPoint>&) [with EndPoint = eprosima::uxr::IPv6EndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1042:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = const eprosima::uxr::CanEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [23], unsigned int, const eprosima::uxr::CanEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [23], unsigned int, eprosima::uxr::CanEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [23], unsigned int, const eprosima::uxr::CanEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::CanEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::CanEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[23], unsigned int&, const eprosima::uxr::CanEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:113:9:   required from ‘void eprosima::uxr::SessionManager<EndPoint>::destroy_session(const EndPoint&) [with EndPoint = eprosima::uxr::CanEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:264:40:   required from ‘bool eprosima::uxr::Processor<EndPoint>::process_create_client_submessage(eprosima::uxr::InputPacket<EndPoint>&) [with EndPoint = eprosima::uxr::CanEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1043:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = const eprosima::uxr::SerialEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [23], unsigned int, const eprosima::uxr::SerialEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [23], unsigned int, eprosima::uxr::SerialEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [23], unsigned int, const eprosima::uxr::SerialEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::SerialEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::SerialEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[23], unsigned int&, const eprosima::uxr::SerialEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:113:9:   required from ‘void eprosima::uxr::SessionManager<EndPoint>::destroy_session(const EndPoint&) [with EndPoint = eprosima::uxr::SerialEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:264:40:   required from ‘bool eprosima::uxr::Processor<EndPoint>::process_create_client_submessage(eprosima::uxr::InputPacket<EndPoint>&) [with EndPoint = eprosima::uxr::SerialEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1044:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = const eprosima::uxr::MultiSerialEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [23], unsigned int, const eprosima::uxr::MultiSerialEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [23], unsigned int, eprosima::uxr::MultiSerialEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [23], unsigned int, const eprosima::uxr::MultiSerialEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::MultiSerialEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::MultiSerialEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[23], unsigned int&, const eprosima::uxr::MultiSerialEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:113:9:   required from ‘void eprosima::uxr::SessionManager<EndPoint>::destroy_session(const EndPoint&) [with EndPoint = eprosima::uxr::MultiSerialEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:264:40:   required from ‘bool eprosima::uxr::Processor<EndPoint>::process_create_client_submessage(eprosima::uxr::InputPacket<EndPoint>&) [with EndPoint = eprosima::uxr::MultiSerialEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1045:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = const eprosima::uxr::CustomEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [23], unsigned int, const eprosima::uxr::CustomEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [23], unsigned int, eprosima::uxr::CustomEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [23], unsigned int, const eprosima::uxr::CustomEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::CustomEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::CustomEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[23], unsigned int&, const eprosima::uxr::CustomEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:113:9:   required from ‘void eprosima::uxr::SessionManager<EndPoint>::destroy_session(const EndPoint&) [with EndPoint = eprosima::uxr::CustomEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:264:40:   required from ‘bool eprosima::uxr::Processor<EndPoint>::process_create_client_submessage(eprosima::uxr::InputPacket<EndPoint>&) [with EndPoint = eprosima::uxr::CustomEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1046:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:118: CMakeFiles/microxrcedds_agent.dir/src/cpp/processor/Processor.cpp.o] Error 1
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/Root.hpp:18,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/Root.cpp:15:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:104: CMakeFiles/microxrcedds_agent.dir/src/cpp/Root.cpp.o] Error 1
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/Root.hpp:18,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/Agent.cpp:16:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:76: CMakeFiles/microxrcedds_agent.dir/src/cpp/Agent.cpp.o] Error 1
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/client/ProxyClient.cpp:15:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:132: CMakeFiles/microxrcedds_agent.dir/src/cpp/client/ProxyClient.cpp.o] Error 1
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:18,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/Server.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/utils/ArgumentParser.hpp:24,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/AgentInstance.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/AgentInstance.cpp:16:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:90: CMakeFiles/microxrcedds_agent.dir/src/cpp/AgentInstance.cpp.o] Error 1
gmake[4]: *** [CMakeFiles/Makefile2:85: CMakeFiles/microxrcedds_agent.dir/all] Error 2
gmake[3]: *** [Makefile:136: all] Error 2
gmake[2]: *** [CMakeFiles/uagent.dir/build.make:86: uagent-prefix/src/uagent-stamp/uagent-build] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/uagent.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2
---
Failed   <<< microxrcedds_agent [7.07s, exited with code 2]

Summary: 0 packages finished [7.28s]
  1 package failed: microxrcedds_agent
  1 package had stderr output: microxrcedds_agent

Additional information

Before opening this issue, I've tried to search on the internet.
I've found the same problem mentioned inside the spdlog repository, issue spdlog::#2825.
Since spdlog is linked through the CMakelists.txt file, I could not just change the flag mentioned there as I would have done if I was building it from source.
Following the other issues linked there, namely spdlog::#2805, fmt::#3318 and fmt::#2919 and inspecting the spdlog repo, I've seen that this issue has been already resolved in newer versions of spdlog. Changing the one referenced in the CMakelists.txt file should be enough to close this.

Note: this might occur even when building as a standalone project, but I haven't tried that since I need it as a ROS2 package.

@pablogs9
Copy link
Member

Which distro of ROS 2 you have installed?

Have you tried to build against your local SPDLog installation using the flag UAGENT_USE_SYSTEM_LOGGER?

option(UAGENT_USE_SYSTEM_LOGGER "Force find and use system installed spdlog." OFF)

@slim71
Copy link
Author

slim71 commented Sep 25, 2023

I've got Humble.

Did not try to use that flag, since I do not have any local SPDLog. I might also have missed that flag and any info about the need for a local one. Maybe this issue was already known then?

@pablogs9
Copy link
Member

Yes, I have seen this issue in the past: micro-ROS/micro-ROS-Agent#186 or micro-ROS/micro-ROS-Agent#50

If I recall correctly Humble has an spdlog version installed, at least, the docker image has it:

image

Try to build with the flag UAGENT_USE_SYSTEM_LOGGER enabled.

@slim71
Copy link
Author

slim71 commented Sep 26, 2023

I tried but did not manage to make it work.
I've tried setting it to ON from the source, and also tried from CLI in multiple ways to avoid errors (note that I have to select the package since I have many in the workspace):

  • colcon build --cmake-args -DUAGENT_USE_SYSTEM_LOGGER=ON --packages-select microxrcedds_agent
  • colcon build --cmake-args " -DUAGENT_USE_SYSTEM_LOGGER=ON" --packages-select microxrcedds_agent
  • colcon build --packages-select microxrcedds_agent --cmake-args " -DUAGENT_USE_SYSTEM_LOGGER=ON"
  • colcon build --packages-select=microxrcedds_agent --cmake-args " -DUAGENT_USE_SYSTEM_LOGGER=ON"
  • colcon build --packages-select microxrcedds_agent --cmake-args -DUAGENT_USE_SYSTEM_LOGGER=ON
  • colcon build --packages-select=microxrcedds_agent --cmake-args -DUAGENT_USE_SYSTEM_LOGGER=ON

but nothing worked.
For completeness, here's the search results I have with what you've shown
Screenshot from 2023-09-26 23-09-02

Am I missing something here?

@pablogs9
Copy link
Member

Did you start in a clean environment? Ensure that build, log and install folder are removed before running the colcon command

@slim71
Copy link
Author

slim71 commented Sep 27, 2023

I did, and even retried now: no luck
(you can ignore the warnings about the packages I built while working on something else)

slim71@slim71-Ubuntu:~/Documents/git/SpartanLIFT$ ls -l build
total 0
slim71@slim71-Ubuntu:~/Documents/git/SpartanLIFT$ ls -l install/
total 0
slim71@slim71-Ubuntu:~/Documents/git/SpartanLIFT$ ls -l log/
total 0
slim71@slim71-Ubuntu:~/Documents/git/SpartanLIFT$ colcon build --packages-select microxrcedds_agent --cmake-args " -DUAGENT_USE_SYSTEM_LOGGER=ON"
[0.368s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/slim71/Documents/git/SpartanLIFT/install/reach' in the environment variable AMENT_PREFIX_PATH doesn't exist
[0.368s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/slim71/Documents/git/SpartanLIFT/install/px4_ros_com' in the environment variable AMENT_PREFIX_PATH doesn't exist
[0.368s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/slim71/Documents/git/SpartanLIFT/install/pelican' in the environment variable AMENT_PREFIX_PATH doesn't exist
[0.368s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/slim71/Documents/git/SpartanLIFT/install/px4_msgs' in the environment variable AMENT_PREFIX_PATH doesn't exist
[0.369s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/slim71/Documents/git/SpartanLIFT/install/px4' in the environment variable AMENT_PREFIX_PATH doesn't exist
[0.369s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/slim71/Documents/git/SpartanLIFT/install/odst' in the environment variable AMENT_PREFIX_PATH doesn't exist
[0.369s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/slim71/Documents/git/SpartanLIFT/install/comms' in the environment variable AMENT_PREFIX_PATH doesn't exist
[0.369s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/slim71/Documents/git/SpartanLIFT/install/cargo' in the environment variable AMENT_PREFIX_PATH doesn't exist
[0.370s] WARNING:colcon.colcon_ros.prefix_path.catkin:The path '/home/slim71/Documents/git/SpartanLIFT/install/reach' in the environment variable CMAKE_PREFIX_PATH doesn't exist
[0.370s] WARNING:colcon.colcon_ros.prefix_path.catkin:The path '/home/slim71/Documents/git/SpartanLIFT/install/px4_ros_com' in the environment variable CMAKE_PREFIX_PATH doesn't exist
[0.370s] WARNING:colcon.colcon_ros.prefix_path.catkin:The path '/home/slim71/Documents/git/SpartanLIFT/install/pelican' in the environment variable CMAKE_PREFIX_PATH doesn't exist
[0.370s] WARNING:colcon.colcon_ros.prefix_path.catkin:The path '/home/slim71/Documents/git/SpartanLIFT/install/px4_msgs' in the environment variable CMAKE_PREFIX_PATH doesn't exist
[0.370s] WARNING:colcon.colcon_ros.prefix_path.catkin:The path '/home/slim71/Documents/git/SpartanLIFT/install/px4' in the environment variable CMAKE_PREFIX_PATH doesn't exist
[0.370s] WARNING:colcon.colcon_ros.prefix_path.catkin:The path '/home/slim71/Documents/git/SpartanLIFT/install/comms' in the environment variable CMAKE_PREFIX_PATH doesn't exist
[0.370s] WARNING:colcon.colcon_ros.prefix_path.catkin:The path '/home/slim71/Documents/git/SpartanLIFT/install/cargo' in the environment variable CMAKE_PREFIX_PATH doesn't exist
Starting >>> microxrcedds_agent
--- stderr: microxrcedds_agent                             
CMake Warning (dev) at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
  The package name passed to `find_package_handle_standard_args` (tinyxml2)
  does not match the name of the calling package (TinyXML2).  This can lead
  to problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  cmake/modules/FindTinyXML2.cmake:40 (find_package_handle_standard_args)
  /opt/ros/humble/share/fastrtps/cmake/fastrtps-config.cmake:51 (find_package)
  CMakeLists.txt:153 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/participant/Participant.cpp:16:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:146: CMakeFiles/microxrcedds_agent.dir/src/cpp/participant/Participant.cpp.o] Error 1
gmake[5]: *** Waiting for unfinished jobs....
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/publisher/Publisher.cpp:16:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:174: CMakeFiles/microxrcedds_agent.dir/src/cpp/publisher/Publisher.cpp.o] Error 1
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/topic/Topic.cpp:17:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:160: CMakeFiles/microxrcedds_agent.dir/src/cpp/topic/Topic.cpp.o] Error 1
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/Root.hpp:18,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:20:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
In file included from /usr/include/spdlog/fmt/fmt.h:25,
                 from /usr/include/spdlog/common.h:36,
                 from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/Root.hpp:18,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:20:
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = eprosima::uxr::IPv4EndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [52], unsigned int, eprosima::uxr::IPv4EndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [52], unsigned int, eprosima::uxr::IPv4EndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [52], unsigned int, eprosima::uxr::IPv4EndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::IPv4EndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::IPv4EndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[52], unsigned int&, eprosima::uxr::IPv4EndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1031:17:   required from ‘void eprosima::uxr::Processor<EndPoint>::check_heartbeats() [with EndPoint = eprosima::uxr::IPv4EndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1041:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
 1579 |       formattable,
      |       ^~~~~~~~~~~
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = eprosima::uxr::IPv6EndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [52], unsigned int, eprosima::uxr::IPv6EndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [52], unsigned int, eprosima::uxr::IPv6EndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [52], unsigned int, eprosima::uxr::IPv6EndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::IPv6EndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::IPv6EndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[52], unsigned int&, eprosima::uxr::IPv6EndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1031:17:   required from ‘void eprosima::uxr::Processor<EndPoint>::check_heartbeats() [with EndPoint = eprosima::uxr::IPv6EndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1042:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = eprosima::uxr::CanEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [52], unsigned int, eprosima::uxr::CanEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [52], unsigned int, eprosima::uxr::CanEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [52], unsigned int, eprosima::uxr::CanEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::CanEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::CanEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[52], unsigned int&, eprosima::uxr::CanEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1031:17:   required from ‘void eprosima::uxr::Processor<EndPoint>::check_heartbeats() [with EndPoint = eprosima::uxr::CanEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1043:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = eprosima::uxr::SerialEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [52], unsigned int, eprosima::uxr::SerialEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [52], unsigned int, eprosima::uxr::SerialEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [52], unsigned int, eprosima::uxr::SerialEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::SerialEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::SerialEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[52], unsigned int&, eprosima::uxr::SerialEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1031:17:   required from ‘void eprosima::uxr::Processor<EndPoint>::check_heartbeats() [with EndPoint = eprosima::uxr::SerialEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1044:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = eprosima::uxr::MultiSerialEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [52], unsigned int, eprosima::uxr::MultiSerialEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [52], unsigned int, eprosima::uxr::MultiSerialEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [52], unsigned int, eprosima::uxr::MultiSerialEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::MultiSerialEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::MultiSerialEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[52], unsigned int&, eprosima::uxr::MultiSerialEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1031:17:   required from ‘void eprosima::uxr::Processor<EndPoint>::check_heartbeats() [with EndPoint = eprosima::uxr::MultiSerialEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1045:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = eprosima::uxr::CustomEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [52], unsigned int, eprosima::uxr::CustomEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [52], unsigned int, eprosima::uxr::CustomEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [52], unsigned int, eprosima::uxr::CustomEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::CustomEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[52], unsigned int&, eprosima::uxr::CustomEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[52], unsigned int&, eprosima::uxr::CustomEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1031:17:   required from ‘void eprosima::uxr::Processor<EndPoint>::check_heartbeats() [with EndPoint = eprosima::uxr::CustomEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1046:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = const eprosima::uxr::IPv4EndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [23], unsigned int, const eprosima::uxr::IPv4EndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [23], unsigned int, eprosima::uxr::IPv4EndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [23], unsigned int, const eprosima::uxr::IPv4EndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::IPv4EndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::IPv4EndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[23], unsigned int&, const eprosima::uxr::IPv4EndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:113:9:   required from ‘void eprosima::uxr::SessionManager<EndPoint>::destroy_session(const EndPoint&) [with EndPoint = eprosima::uxr::IPv4EndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:264:40:   required from ‘bool eprosima::uxr::Processor<EndPoint>::process_create_client_submessage(eprosima::uxr::InputPacket<EndPoint>&) [with EndPoint = eprosima::uxr::IPv4EndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1041:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = const eprosima::uxr::IPv6EndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [23], unsigned int, const eprosima::uxr::IPv6EndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [23], unsigned int, eprosima::uxr::IPv6EndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [23], unsigned int, const eprosima::uxr::IPv6EndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::IPv6EndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::IPv6EndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[23], unsigned int&, const eprosima::uxr::IPv6EndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:113:9:   required from ‘void eprosima::uxr::SessionManager<EndPoint>::destroy_session(const EndPoint&) [with EndPoint = eprosima::uxr::IPv6EndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:264:40:   required from ‘bool eprosima::uxr::Processor<EndPoint>::process_create_client_submessage(eprosima::uxr::InputPacket<EndPoint>&) [with EndPoint = eprosima::uxr::IPv6EndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1042:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = const eprosima::uxr::CanEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [23], unsigned int, const eprosima::uxr::CanEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [23], unsigned int, eprosima::uxr::CanEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [23], unsigned int, const eprosima::uxr::CanEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::CanEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::CanEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[23], unsigned int&, const eprosima::uxr::CanEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:113:9:   required from ‘void eprosima::uxr::SessionManager<EndPoint>::destroy_session(const EndPoint&) [with EndPoint = eprosima::uxr::CanEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:264:40:   required from ‘bool eprosima::uxr::Processor<EndPoint>::process_create_client_submessage(eprosima::uxr::InputPacket<EndPoint>&) [with EndPoint = eprosima::uxr::CanEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1043:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = const eprosima::uxr::SerialEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [23], unsigned int, const eprosima::uxr::SerialEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [23], unsigned int, eprosima::uxr::SerialEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [23], unsigned int, const eprosima::uxr::SerialEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::SerialEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::SerialEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[23], unsigned int&, const eprosima::uxr::SerialEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:113:9:   required from ‘void eprosima::uxr::SessionManager<EndPoint>::destroy_session(const EndPoint&) [with EndPoint = eprosima::uxr::SerialEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:264:40:   required from ‘bool eprosima::uxr::Processor<EndPoint>::process_create_client_submessage(eprosima::uxr::InputPacket<EndPoint>&) [with EndPoint = eprosima::uxr::SerialEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1044:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = const eprosima::uxr::MultiSerialEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [23], unsigned int, const eprosima::uxr::MultiSerialEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [23], unsigned int, eprosima::uxr::MultiSerialEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [23], unsigned int, const eprosima::uxr::MultiSerialEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::MultiSerialEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::MultiSerialEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[23], unsigned int&, const eprosima::uxr::MultiSerialEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:113:9:   required from ‘void eprosima::uxr::SessionManager<EndPoint>::destroy_session(const EndPoint&) [with EndPoint = eprosima::uxr::MultiSerialEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:264:40:   required from ‘bool eprosima::uxr::Processor<EndPoint>::process_create_client_submessage(eprosima::uxr::InputPacket<EndPoint>&) [with EndPoint = eprosima::uxr::MultiSerialEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1045:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
/usr/local/include/fmt/core.h: In instantiation of ‘fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = const eprosima::uxr::CustomEndPoint; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/usr/local/include/fmt/core.h:1807:51:   required from ‘fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {const char [23], unsigned int, const eprosima::uxr::CustomEndPoint}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {char [23], unsigned int, eprosima::uxr::CustomEndPoint}]’
/usr/local/include/fmt/core.h:1825:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {const char [23], unsigned int, const eprosima::uxr::CustomEndPoint}]’
/usr/include/spdlog/logger.h:332:68:   required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::CustomEndPoint&}; spdlog::string_view_t = fmt::v10::basic_string_view<char>]’
/usr/include/spdlog/logger.h:83:13:   required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::format_string<T ...>, Args&& ...) [with Args = {const char (&)[23], unsigned int&, const eprosima::uxr::CustomEndPoint&}; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, const char (&)[23], unsigned int&, const eprosima::uxr::CustomEndPoint&>]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:113:9:   required from ‘void eprosima::uxr::SessionManager<EndPoint>::destroy_session(const EndPoint&) [with EndPoint = eprosima::uxr::CustomEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:264:40:   required from ‘bool eprosima::uxr::Processor<EndPoint>::process_create_client_submessage(eprosima::uxr::InputPacket<EndPoint>&) [with EndPoint = eprosima::uxr::CustomEndPoint]’
/home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/processor/Processor.cpp:1046:16:   required from here
/usr/local/include/fmt/core.h:1579:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
/usr/local/include/fmt/core.h:1579:7: note: ‘formattable’ evaluates to false
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:118: CMakeFiles/microxrcedds_agent.dir/src/cpp/processor/Processor.cpp.o] Error 1
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/Root.hpp:18,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/Agent.cpp:16:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:76: CMakeFiles/microxrcedds_agent.dir/src/cpp/Agent.cpp.o] Error 1
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/client/ProxyClient.cpp:15:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:132: CMakeFiles/microxrcedds_agent.dir/src/cpp/client/ProxyClient.cpp.o] Error 1
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/SessionManager.hpp:18,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/transport/Server.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/utils/ArgumentParser.hpp:24,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/AgentInstance.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/AgentInstance.cpp:16:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:90: CMakeFiles/microxrcedds_agent.dir/src/cpp/AgentInstance.cpp.o] Error 1
In file included from /usr/include/spdlog/spdlog.h:12,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/logger/Logger.hpp:23,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/session/Session.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/client/ProxyClient.hpp:20,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/include/uxr/agent/Root.hpp:18,
                 from /home/slim71/Documents/git/SpartanLIFT/src/Micro-XRCE-DDS-Agent/src/cpp/Root.cpp:15:
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                               ^~~~~~~~~~~~~
/usr/include/spdlog/common.h:127:111: error: ‘basic_runtime’ is not a member of ‘fmt’
/usr/include/spdlog/common.h:127:125: error: template argument 2 is invalid
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                             ^~~~
/usr/include/spdlog/common.h:127:138: error: expected ‘{’ before ‘>’ token
  127 |           std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
      |                                                                                                                                          ^
gmake[5]: *** [CMakeFiles/microxrcedds_agent.dir/build.make:104: CMakeFiles/microxrcedds_agent.dir/src/cpp/Root.cpp.o] Error 1
gmake[4]: *** [CMakeFiles/Makefile2:85: CMakeFiles/microxrcedds_agent.dir/all] Error 2
gmake[3]: *** [Makefile:136: all] Error 2
gmake[2]: *** [CMakeFiles/uagent.dir/build.make:86: uagent-prefix/src/uagent-stamp/uagent-build] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/uagent.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2
---
Failed   <<< microxrcedds_agent [5.76s, exited with code 2]

Summary: 0 packages finished [5.96s]
  1 package failed: microxrcedds_agent
  1 package had stderr output: microxrcedds_agent

@pablogs9
Copy link
Member

Are you sure that you have a clean humble installation?

I have just tried to replicate in a clean ROS 2 Humble docker with no problem:

https://asciinema.org/a/6aU9thzS4ivJTzBH0yD930EkQ

@slim71
Copy link
Author

slim71 commented Sep 27, 2023

Not clean aka new, since I'm working with it, but it should be all good and with no problems...
I'll check back once I get back to it, since I'm out now...
Any specific suggestions as what to look out for? Or additional info that might prove useful?

@pablogs9
Copy link
Member

Just check the differences between your environment and a clean one, and make sure that you are not installing/modifying spdlog anywhere.

@slim71
Copy link
Author

slim71 commented Sep 28, 2023

I've tried to check everything I could think of:

  • executed ros2 doctor
  • updated all ROS2 packages
  • tried running the "standard"/demo package of turtlesim (+ ros2 doctor while running)
  • checked for additional spdlog installations, but I could not find any (only some VSCode folders, in addition to the same ones you showed)
    Screenshot from 2023-09-28 22-02-43
  • checked status of colcon
  • tried to take a look at all logs, with no luck

I can provide my logs if it can be useful, but other than that I think I'm out of options...

@pablogs9
Copy link
Member

Is it not possible for you to use the dockerized version of the micro-ROS Agent? https://hub.docker.com/r/microros/micro-ros-agent

@slim71
Copy link
Author

slim71 commented Sep 29, 2023

Unfortunately not for this... But it works, with the changes I've made in the PR linked to this ticket

@Mendeler
Copy link

Mendeler commented Dec 5, 2023

Unfortunately not for this... But it works, with the changes I've made in the PR linked to this ticket

Sorry,` I'm not familiar with GitHub, I also encountered this compilation problem with Ubuntu22.04+humble, how did you solve it, thank you?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants