Closed anasarrak closed 5 years ago
For ROS2 dashing, this package (released version, 0.7.0, and master) generates C header files with duplicated guard names, e.g.
$ grep -r _GRIPPERCOMMAND__H_ .
./build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/msg/dds_opensplice/GripperCommand_.h:#ifndef _GRIPPERCOMMAND__H_
./build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/msg/dds_opensplice/GripperCommand_.h:#define _GRIPPERCOMMAND__H_
./build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/GripperCommand_.h:#ifndef _GRIPPERCOMMAND__H_
./build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/GripperCommand_.h:#define _GRIPPERCOMMAND__H_
There is more info in this issue https://github.com/ros2/rosidl_typesupport_opensplice/issues/30
@MarcelJordense @eboasson Is it possible to fix this bug and make a new release? I would assume that more and more users will run into this and will be unable to use ROS 2 with OpenSplice.
@dirk-thomas We will try to provide a solution for this problem.
@MarcelJordense Is there any update?
@anasarrak We hopefully have implemented a solution for this problem. A new release of the OpenSplice CE version will be available soon. I will inform you when this release is available.
@MarcelJordense Can you give us an aproximation of time of when it should be available? Do you have the patch so we can test it locally?
@anasarrak A new version of OpenSplice CE is now available which should solve the problem. The release is OSPL_V6_9_190624OSS_RELEASE. Currently however only for two supported platforms generated installers are available. The installers for the other platforms will be added later. Currently I cannot provide an estimation when these installers will be available.
@MarcelJordense After using your release the following error appears
Starting >>> control_msgs
--- stderr: control_msgs
Traceback (most recent call last):
File "/opt/ros/dashing/lib/rosidl_typesupport_opensplice_cpp/rosidl_typesupport_opensplice_cpp", line 55, in <module>
sys.exit(main())
File "/opt/ros/dashing/lib/rosidl_typesupport_opensplice_cpp/rosidl_typesupport_opensplice_cpp", line 50, in main
args.idl_pp,
File "/opt/ros/dashing/lib/python3.6/site-packages/rosidl_typesupport_opensplice_cpp/__init__.py", line 82, in generate_dds_opensplice_cpp
_modify(h_filename, msg_name, _replace_path_and_timestamp, idl_path=idl_path)
File "/opt/ros/dashing/lib/python3.6/site-packages/rosidl_typesupport_opensplice_cpp/__init__.py", line 96, in _modify
modified = callback(lines, msg_name, idl_path=idl_path)
File "/opt/ros/dashing/lib/python3.6/site-packages/rosidl_typesupport_opensplice_cpp/__init__.py", line 115, in _replace_path_and_timestamp
assert False, "Failed to find '// Generated: ' line"
AssertionError: Failed to find '// Generated: ' line
make[2]: *** [rosidl_typesupport_opensplice_cpp/control_msgs/msg/dds_opensplice/gripper_command__type_support.cpp] Error 1
make[2]: *** Deleting file 'rosidl_typesupport_opensplice_cpp/control_msgs/msg/dds_opensplice/gripper_command__type_support.cpp'
make[1]: *** [CMakeFiles/control_msgs__rosidl_typesupport_opensplice_cpp.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2
---
Failed <<< control_msgs [ Exited with code 2 ]
Commenting out the assert makes the compilation work and it seems like the messages are getting generated.
erle@kaladin:/mnt/myfiles/github/control_msgs$ du -a|grep gripper_command.hpp
./install/include/control_msgs/msg/gripper_command.hpp
./install/include/control_msgs/action/gripper_command.hpp
./build/control_msgs/rosidl_generator_cpp/control_msgs/msg/gripper_command.hpp
./build/control_msgs/rosidl_generator_cpp/control_msgs/action/gripper_command.hpp
@anasarrak The assert in the init.py is not valid anymore. Sorry I forgot about that. I have issued a pull request to solve this.
Great! Thanks for everything @MarcelJordense
@anasarrak It seems being solved. Could you please close this ?
After the lastest release of ROS2 (Dashing) I've been having some issues compiling the actions, specially the control_msgs. The exact error when compiling is the following:
This has been discussed on the following topic, and it seems that the error is on the DDS .