Skip to content
This repository was archived by the owner on Oct 17, 2025. It is now read-only.
This repository was archived by the owner on Oct 17, 2025. It is now read-only.

Build Failure: Unable to Build gazebo_ros2_control on Windows #377

@SENAI-GilmarCorreia

Description

@SENAI-GilmarCorreia

Description:

I am encountering an issue while trying to build the gazebo_ros2_control package on a Windows environment. The build fails with the following error log. I've anonymized any user-specific data in the output. Please advise on how to resolve this issue.

Error Log (Anonymized):

C:\Path\To\Anaconda\envs\gazebo\Library\include\absl/base/prefetch.h(183): warning C4100: 'addr': formal parameter not referenced
C:\Path\To\Anaconda\envs\gazebo\Library\include\google/protobuf/inlined_string_field.h(378): warning C4100: 'arena': formal parameter not referenced
C:\Path\To\Anaconda\envs\gazebo\Library\include\absl/container/internal/hashtablez_sampler.h(210): warning C4100: 'inline_element_size': formal parameter not referenced
C:\Path\To\Anaconda\envs\gazebo\Library\include\google/protobuf/descriptor.h(2239): warning C4100: 'message': formal parameter not referenced
C:\Path\To\Anaconda\envs\gazebo\Library\include\google/protobuf/descriptor.h(2238): warning C4100: 'location': formal parameter not referenced
C:\Path\To\Anaconda\envs\gazebo\Library\include\google/protobuf/descriptor.h(2238): warning C4100: 'descriptor': formal parameter not referenced
C:\Path\To\Anaconda\envs\gazebo\Library\include\google/protobuf/descriptor.h(2237): warning C4100: 'element_name': formal parameter not referenced
C:\Path\To\Anaconda\envs\gazebo\Library\include\google/protobuf/descriptor.h(2236): warning C4100: 'filename': formal parameter not referenced
C:\Path\To\Anaconda\envs\gazebo\Library\include\google/protobuf/descriptor.h(2246): warning C4100: 'message': formal parameter not referenced
C:\Path\To\Anaconda\envs\gazebo\Library\include\google/protobuf/descriptor.h(2245): warning C4100: 'location': formal parameter not referenced
C:\Path\To\Anaconda\envs\gazebo\Library\include\google/protobuf/descriptor.h(2245): warning C4100: 'descriptor': formal parameter not referenced
C:\Path\To\Anaconda\envs\gazebo\Library\include\google/protobuf/descriptor.h(2244): warning C4100: 'element_name': formal parameter not referenced
C:\Path\To\Anaconda\envs\gazebo\Library\include\google/protobuf/descriptor.h(2243): warning C4100: 'filename': formal parameter not referenced
C:\Path\To\Anaconda\envs\gazebo\Library\include\google/protobuf/map.h(689): warning C4244: 'initializing': conversion from 'uintptr_t' to 'google::protobuf::internal::map_index_t', possible loss of data
C:\Path\To\Anaconda\envs\gazebo\Library\include\gazebo-11\gazebo/common/Dem.hh(121): warning C4373: 'gazebo::common::Dem::FillHeightMap': virtual function overrides 'gazebo::common::HeightmapData::FillHeightMap', previous versions of the compiler did not override when parameters differed only in const/volatile qualifiers
C:\Path\To\Anaconda\envs\gazebo\Library\include\gazebo-11\gazebo/common/HeightmapData.hh(55): note: see the declaration of 'gazebo::common::HeightmapData::FillHeightMap'
C:\Path\To\Desktop\YourProject\install\include\hardware_interface/types/hardware_interface_return_values.hpp(25): error C2143: syntax error: missing '}' before 'constant'
C:\Path\To\Desktop\YourProject\install\include\hardware_interface/types/hardware_interface_return_values.hpp(25): error C2059: syntax error: 'constant'
C:\Path\To\Desktop\YourProject\install\include\hardware_interface/types/hardware_interface_return_values.hpp(26): error C2143: syntax error: missing ';' before '}'
C:\Path\To\Desktop\YourProject\install\include\hardware_interface/types/hardware_interface_return_values.hpp(28): error C2059: syntax error: '}'
C:\Path\To\Desktop\YourProject\install\include\hardware_interface/types/hardware_interface_return_values.hpp(28): error C2143: syntax error: missing ';' before '}'
C:\Path\To\Desktop\YourProject\install\include\hardware_interface/types/lifecycle_state_names.hpp(23): error C2143: syntax error: missing ';' before '{'
C:\Path\To\Desktop\YourProject\install\include\hardware_interface/types/lifecycle_state_names.hpp(23): error C2447: '{': missing function header (old-style formal list?)
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(53): error C2143: syntax error: missing '}' before 'constant'
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(53): error C2059: syntax error: 'constant'
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(54): error C2143: syntax error: missing ';' before '}'
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(54): error C2238: unexpected token(s) preceding ';'
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(62): error C2433: 'CallbackReturn': 'virtual' not allowed in data declarations
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(62): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(62): error C2146: syntax error: missing ';' before identifier 'on_configure'
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(62): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(70): error C2433: 'CallbackReturn': 'virtual' not allowed in data declarations
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(70): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(70): error C2146: syntax error: missing ';' before identifier 'on_cleanup'
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(70): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(78): error C2433: 'CallbackReturn': 'virtual' not allowed in data declarations
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(78): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(78): error C2146: syntax error: missing ';' before identifier 'on_shutdown'
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(78): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(86): error C2433: 'CallbackReturn': 'virtual' not allowed in data declarations
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(86): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(86): error C2146: syntax error: missing ';' before identifier 'on_activate'
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(86): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(94): error C2433: 'CallbackReturn': 'virtual' not allowed in data declarations
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(94): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(94): error C2146: syntax error: missing ';' before identifier 'on_deactivate'
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(94): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(102): error C2433: 'CallbackReturn': 'virtual' not allowed in data declarations
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(102): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(102): error C2146: syntax error: missing ';' before identifier 'on_error'
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(102): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(106): error C2588: '::~LifecycleNodeInterface': invalid global destructor
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(106): error C2575: 'LifecycleNodeInterface': only member functions and base classes can be virtual
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(106): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(106): error C2491: 'rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface': dllimport function definition not allowed
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(106): warning C4508: 'rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface': function should return a value; return type 'void' assumed
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(110): error C2059: syntax error: '}'
<path_to_ros>/include/rclcpp_lifecycle/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp(110): error C2143: syntax error: missing ';' before '}'

Environment:

  • OS: Windows 11 Pro
  • ROS Version: Humble
  • Gazebo Version: 11.14.0
  • Compiler: MSVC

I have already installed all necessary dependencies via vcpkg and configured the environment variables. Please let me know if additional details are required.

Steps to Reproduce:

  1. Clone gazebo_ros2_control repository.
  2. Run colcon build in the workspace on Windows.

Expected Behavior:
The build should complete successfully without errors.

Actual Behavior:
The build fails with the above-mentioned errors.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions