ros2_documentation
ros2_documentation copied to clipboard
example packages are already built in underlay workspaces
Following, Using colcon to build packages tutorial, the colcon build --symlink-install command throws warnings because all ros2/examples packages are included in the ROS desktop installation. This can be confusing to a beginner:
[0.435s] WARNING:colcon.colcon_core.package_selection:Some selected packages are already built in one or more underlay workspaces:
'examples_rclpy_minimal_action_client' is in: /opt/ros/rolling
'examples_rclcpp_minimal_timer' is in: /opt/ros/rolling
'examples_rclpy_minimal_subscriber' is in: /opt/ros/rolling
'examples_rclpy_minimal_client' is in: /opt/ros/rolling
'examples_rclpy_executors' is in: /opt/ros/rolling
'examples_rclcpp_multithreaded_executor' is in: /opt/ros/rolling
'examples_rclpy_minimal_service' is in: /opt/ros/rolling
'examples_rclcpp_minimal_composition' is in: /opt/ros/rolling
'examples_rclcpp_minimal_client' is in: /opt/ros/rolling
'examples_rclcpp_minimal_publisher' is in: /opt/ros/rolling
'examples_rclcpp_minimal_service' is in: /opt/ros/rolling
'examples_rclpy_minimal_publisher' is in: /opt/ros/rolling
'examples_rclpy_minimal_action_server' is in: /opt/ros/rolling
'examples_rclcpp_minimal_action_server' is in: /opt/ros/rolling
'examples_rclcpp_minimal_action_client' is in: /opt/ros/rolling
'examples_rclcpp_minimal_subscriber' is in: /opt/ros/rolling
If a package in a merged underlay workspace is overridden and it installs headers, then all packages in the overlay must sort their include directories by workspace order. Failure to do so may result in build failures or undefined behavior at run time.
If the overridden package is used by another package in any underlay, then the overriding package in the overlay must be API and ABI compatible or undefined behavior at run time may occur.
If you understand the risks and want to override a package anyways, add the following to the command line:
--allow-overriding examples_rclcpp_minimal_action_client examples_rclcpp_minimal_action_server examples_rclcpp_minimal_client examples_rclcpp_minimal_composition examples_rclcpp_minimal_publisher examples_rclcpp_minimal_service examples_rclcpp_minimal_subscriber examples_rclcpp_minimal_timer examples_rclcpp_multithreaded_executor examples_rclpy_executors examples_rclpy_minimal_action_client examples_rclpy_minimal_action_server examples_rclpy_minimal_client examples_rclpy_minimal_publisher examples_rclpy_minimal_service examples_rclpy_minimal_subscriber
This may be promoted to an error in a future release of colcon-override-check.
I suggest we modify the tutorial to build a package that is not included in the ROS desktop installation.