Closed
Description
I was encounter many errors while use ros2 colcon build.
iceoryx_hoofs , iceoryx_posh and iceoryx_binding_c was built by colcon.
branch: galactic
os: mac osx 10.13.6
error 1
/Users/xlla/ros2_foxy/src/ros2/rmw_iceoryx/rmw_iceoryx_cpp/include/rmw_iceoryx_cpp/iceoryx_name_conversion.hpp:23:10: fatal error: 'iceoryx_utils/cxx/string.hpp' file not found #include "iceoryx_utils/cxx/string.hpp"
change to iceoryx_hoofs/cxx/string.hpp to fix it.
error 2
[ 17%] Linking CXX shared library librmw_iceoryx_serialization.dylib Undefined symbols for architecture x86_64: "rmw_iceoryx_cpp::get_type_support(rosidl_message_type_support_t const*)", referenced from: rmw_iceoryx_cpp::deserialize(char const*, rosidl_message_type_support_t const*, void*) in iceoryx_deserialize.cpp.o rmw_iceoryx_cpp::serialize(void const*, rosidl_message_type_support_t const*, std::__1::vector >&) in iceoryx_serialize.cpp.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) gmake[2]: *** [CMakeFiles/rmw_iceoryx_serialization.dir/build.make:117: librmw_iceoryx_serialization.dylib] Error 1 gmake[1]: *** [CMakeFiles/Makefile2:141: CMakeFiles/rmw_iceoryx_serialization.dir/all] Error 2 gmake: *** [Makefile:146: all] Error 2
manual add iceoryx_type_info_introspection.cpp.o to link.txt fix it.
error 3
/Users/xlla/ros2_foxy/src/ros2/rmw_iceoryx/rmw_iceoryx_cpp/src/internal/iceoryx_generate_gid.cpp:28:21: error: use of undeclared identifier 'typed_uid'; did you mean 'typeid'? iox::UniquePortId typed_uid = publisher->getUid(); ^~~~~~~~~ typeid /Users/xlla/ros2_foxy/src/ros2/rmw_iceoryx/rmw_iceoryx_cpp/src/internal/iceoryx_generate_gid.cpp:28:20: error: expected ';' after expression iox::UniquePortId typed_uid = publisher->getUid(); ^ ; /Users/xlla/ros2_foxy/src/ros2/rmw_iceoryx/rmw_iceoryx_cpp/src/internal/iceoryx_generate_gid.cpp:28:8: error: no member named 'UniquePortId' in namespace 'iox' iox::UniquePortId typed_uid = publisher->getUid(); ~~~~~^ /Users/xlla/ros2_foxy/src/ros2/rmw_iceoryx/rmw_iceoryx_cpp/src/internal/iceoryx_generate_gid.cpp:28:30: error: expected '(' after 'typeid' iox::UniquePortId typed_uid = publisher->getUid();
change to iox::popo::UniquePortId fix it.
error 4
/Users/xlla/ros2_foxy/src/ros2/rmw_iceoryx/rmw_iceoryx_cpp/src/rmw_publisher.cpp:134:26: error: destructor type 'iox::popo::UntypedPublisherImpl >' in object destruction expression does not match the type 'iox::popo::UntypedPublisher' of the object being destroyed iceoryx_sender->~UntypedPublisherImpl(), iox::popo::UntypedPublisher) ^ /Users/xlla/ros2_foxy/install/iceoryx_posh/include/iceoryx/v2.90.0/iceoryx_posh/internal/popo/untyped_publisher_impl.hpp:31:7: note: type 'iox::popo::UntypedPublisherImpl >' is declared here class UntypedPublisherImpl : public BasePublisherType ^ /Users/xlla/ros2_foxy/src/ros2/rmw_iceoryx/rmw_iceoryx_cpp/src/rmw_publisher.cpp:201:46: error: destructor type 'iox::popo::UntypedPublisherImpl >' in object destruction expression does not match the type 'iox::popo::UntypedPublisher' of the object being destroyed iceoryx_publisher->iceoryx_sender_->~UntypedPublisherImpl(), ^
I am not know how to fix it.