-
Notifications
You must be signed in to change notification settings - Fork 35
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
rosidl_typesupport_c assumes shared library names are called "<package name>__<typesupport name>" #120
Comments
IIUC from @hidmic , the instrospection typesupport assumes the library is named the same as the package in more places than this. A temporary workaround would be to warn in |
@sloretz To add to this, I even added a macro quite recently to put together the library name given how often we do it elsewhere. If we want to generalize library naming (and propagate them as a map? so downstream can fetch the right library for a given package), we have to make changes here and downstream. Otherwise, I agree that enforcing the name would be best. |
Similar issue in the past ros2/rosidl_python#11 |
* Workaround ros2/rosidl_typesupport#120 * XXX Test that rosidl_generate_interfaces() works with group * Revert "XXX Test that rosidl_generate_interfaces() works with group" This reverts commit 182bd85. * fixup - pass kwargs to alias targets
I'm having the same issue but my case is a little different. I am using msg from the same package. add_executable(${PROJECT_NAME} src/pcl_mapping.cpp) then I generate the msg lib in the same cmake file, I have to change the lib name to another name (here by adding rosidl_generate_interfaces(${PROJECT_NAME}_msg then this will lead to the exactly same error message as reported by this issue. |
Hi, I had same issue with you and I solved it. rosidl_generate_interfaces(${PROJECT_NAME}_msg remove _msg from ${PROJECT_NAME} and if your node name is ${PROJECT_NAME}, change it also. You can check my CMakeList.txt from this repo: roboteq_motor_controller_driver |
Bug report
Required Info:
Steps to reproduce issue
rosidl_generate_interfaces
fromtest_msgs
totest_msgs_interfaces
(Install headers to include/${PROJECT_NAME} and Depend on rosidl_typesupport_* targets directly rcl_interfaces#133)Expected behavior
All of rcl's tests would pass
Actual behavior
Many tests fail with
All failures:
Additional information
I don't fully understand what's going on, but I'm pretty sure this code is wrong. It assumes the library name for a typesupport target is going to be "__", but that's an incorrect assumption. The first part is the target name passed to
rosidl_generate_interfaces
, not the package name.rosidl_typesupport/rosidl_typesupport_c/src/type_support_dispatch.hpp
Lines 57 to 59 in 34f6e4b
The text was updated successfully, but these errors were encountered: