Skip to content

failure to build for ros2 #81

Closed
Closed
@xlla

Description

@xlla

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.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions