custom msg to use in different node
Hello,
I have created a custom msg in node Xnode. It compiled without errors. Now I want to use this custom msg in node Ynode it gives error when compile Here is CMakeLists.txt of Y_node:
cmake_minimum_required(VERSION 2.8.3)
project(track)
find_package(catkin REQUIRED
COMPONENTS
pcl_ros
roscpp
sensor_msgs
std_msgs
X_node
)
add_message_files(
FILES
Float32MultiArrayStamped.msg)
catkin_package(
CATKIN_DEPENDS
pcl_ros
roscpp
sensor_msgs
std_msgs)
include_directories(
include
${catkin_INCLUDE_DIRS})
add_executable(track_obj src/Y_node.cpp)
add_dependencies(track_obj ${${X_node}_EXPORTED_TARGETS})
target_link_libraries( track_obj ${catkin_LIBRARIES})
Here is package.xml of Y_node:
<?xml version="1.0"?>
<package format="2">
<name>track</name>
<version>0.0.0</version>
<description>The track package</description>
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>libpcl-all-dev</build_depend>
<build_depend>X_node</build_depend>
<build_depend>message_generation</build_depend>
<build_depend>pcl_ros</build_depend>
<build_depend>sensor_msgs</build_depend>
<build_depend>std_msgs</build_depend>
<build_export_depend>message_runtime</build_export_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>X_node</exec_depend>
<exec_depend>message_runtime</exec_depend>
<exec_depend>pcl_ros</exec_depend>
<exec_depend>sensor_msgs</exec_depend>
<exec_depend>std_msgs</exec_depend>
</package>
Compilation error :
Project 'Y_node' tried to find library 'X_node'. The library is neither a
target nor built/installed properly. Did you compile project 'X_node'? Did
you find_package() it before the subdirectory containing its code is
included?
Call Stack (most recent call first):
/opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:76 (find_package)
track/CMakeLists.txt:4 (find_package)
Please help,
Regards
Asked by Ashi on 2018-04-09 08:43:02 UTC
Comments
You have to create your custom message into a message folder, and make sure you added it into the CMakeLists. The tutorial explains the correct way to implement custom msgs.
Asked by kharkad on 2018-04-09 09:19:26 UTC