get ros2 version in C++
Are there any #define to know which version of ROS2 I'm using in C++ source?
ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
Are there any #define to know which version of ROS2 I'm using in C++ source?
There are no defines in C/C++ out of the box.
That being said if your package depends on ros_environment
the following environment variables are set: ROS_VERSION
(which is either 1
or 2
), ROS_DISTRO
(e.g. dashing
or melodic
), etc.
You can use either to set compiler definitions in your package to be used in conditionals.
If you need more fine grain control you can also use the exact version number of each dependency (e.g. https://github.com/ros2/rmw_cyclonedd...).
Asked: 2019-11-01 16:46:52 -0500
Seen: 1,065 times
Last updated: Nov 02 '19
When to use rclcpp::spin or RCLCPP_COMPONENTS_REGISTER_NODE?
How to get argument values in ROS2?
[Nav2] Why use Voxel layer over 2D layer for RGBD sensor?
ROS2 xacro parsing: ${robot_ip} vs $(arg robot_ip)
[ros2run]: Process exited with failure 1
ROS2 launch FindPackageShare vs get_package_share_directory
[ROS2] I can publish a parameter with wrong type and get no exception