ament / ament/ament_cmake

ament_cmake is generating both static and shared libraries

未关闭
#374 0 条评论 0 个 reaction 已指派 1 人 已被 @mjeronimo 认领 在 GitHub 查看
主要语言
CMake
星标
125
派生
147
PR 合并指标
30 天内没有已合并 PR

描述

I was attempting to build the `hardware_interface` package of `ros2_control` on windows and ran into an error involving `ament_cmake_symlink_install` not being able to find a static library(`.lib`) file. I noticed that for every other target in the CMakelists, ament_cmake generates both a dll and a .lib file-- both a shared and a static library. Is ament_cmake intentionally doing this even though the libraries are marked as shared?

Is `ament_cmake_symlink_install` erroneously looking for a .lib file that isn't supposed to be generated?
Is something in `ament_cmake` supposed to be automatically also generating a static lib and is failing for this target?

colcon build log

```
Starting >>> hardware_interface
[Processing: hardware_interface]
--- output: hardware_interface
Not searching for unused variables given on the command line.
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22533.
-- The C compiler identification is MSVC 19.29.30138.0
-- The CXX compiler identification is MSVC 19.29.30138.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found ament_cmake: 1.2.0 (C:/dev/ros2_rolling/install/share/ament_cmake/cmake)
-- Found Python3: C:/python38/python.exe (found version "3.8.10") found components: Interpreter
-- Override CMake install command with custom implementation using symlinks instead of copying resources
-- Found control_msgs: 3.0.0 (C:/Users/melvi/git-repos/ros2_upstream_ws/install/share/control_msgs/cmake)
-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c
-- Found rosidl_adapter: 3.0.0 (C:/dev/ros2_rolling/install/share/rosidl_adapter/cmake)
-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp
-- Found pluginlib: 5.0.0 (C:/dev/ros2_rolling/install/share/pluginlib/cmake)
-- Found TinyXML2 via Config file: C:/ProgramData/chocolatey/lib/tinyxml2/share/cmake
-- Found rclcpp_lifecycle: 14.0.0 (C:/dev/ros2_rolling/install/share/rclcpp_lifecycle/cmake)
-- Found rmw_implementation_cmake: 5.1.0 (C:/dev/ros2_rolling/install/share/rmw_implementation_cmake/cmake)
-- Found rmw_cyclonedds_cpp: 1.1.1 (C:/dev/ros2_rolling/install/share/rmw_cyclonedds_cpp/cmake)
-- Using RMW implementation 'rmw_cyclonedds_cpp' as default
-- Found TinyXML2 via Config file: C:/ProgramData/chocolatey/lib/tinyxml2/share/cmake
-- Found ament_lint_auto: 0.11.3 (C:/dev/ros2_rolling/install/share/ament_lint_auto/cmake)
-- Found gmock sources under 'C:/dev/ros2_rolling/install/src/gmock_vendor': C++ tests using 'Google Mock' will be built
-- Found ament_cmake_gtest: 1.2.0 (C:/dev/ros2_rolling/install/share/ament_cmake_gtest/cmake)
-- Found gtest sources under 'C:/dev/ros2_rolling/install/src/gtest_vendor': C++ tests using 'Google Test' will be built
-- Added test 'copyright' to check source files copyright and LICENSE
-- Added test 'cppcheck' to perform static code analysis on C / C++ code
-- Configured cppcheck include dirs: C:/Users/melvi/git-repos/ros2_upstream_ws/src/ros-controls/ros2_control/hardware_interface/include
-- Configured cppcheck exclude dirs and/or files:
-- Added test 'lint_cmake' to check CMake code style
-- Added test 'xmllint' to check XML markup files
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/melvi/git-repos/ros2_upstream_ws/build/hardware_interface
Microsoft (R) Build Engine version 16.11.2+f32259642 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Checking Build System
Building Custom Rule C:/Users/melvi/git-repos/ros2_upstream_ws/src/ros-controls/ros2_control/hardware_interface/CMakeLists.txt
actuator.cpp
component_parser.cpp
resource_manager.cpp
sensor.cpp
system.cpp
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(294,41): warning C4251: 'hardware_interface::ResourceManager::claimed_command_interface_map_': class 'std::unordered_map,std::equal_to,std::allocator>>' needs to have dll-interface to be used by clients of class 'hardware_interface::ResourceManager' (compiling source file C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\src\resource_manager.cpp) [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\hardware_interface.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(294): message : see declaration of 'std::unordered_map,std::equal_to,std::allocator>>' (compiling source file C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\src\resource_manager.cpp) [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\hardware_interface.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(296,32): warning C4251: 'hardware_interface::ResourceManager::resource_lock_': class 'std::recursive_mutex' needs to have dll-interface to be used by clients of class 'hardware_interface::ResourceManager' (compiling source file C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\src\resource_manager.cpp) [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\hardware_interface.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\mutex(96): message : see declaration of 'std::recursive_mutex' (compiling source file C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\src\resource_manager.cpp) [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\hardware_interface.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(297,36): warning C4251: 'hardware_interface::ResourceManager::resource_storage_': class 'std::unique_ptr>' needs to have dll-interface to be used by clients of class 'hardware_interface::ResourceManager' (compiling source file C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\src\resource_manager.cpp) [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\hardware_interface.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(297): message : see declaration of 'std::unique_ptr>' (compiling source file C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\src\resource_manager.cpp) [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\hardware_interface.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\src\component_parser.cpp(341,91): warning C4267: '=': conversion from 'size_t' to 'int', possible loss of data [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\hardware_interface.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\src\component_parser.cpp(351,87): warning C4267: '=': conversion from 'size_t' to 'int', possible loss of data [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\hardware_interface.vcxproj]
Creating library C:/Users/melvi/git-repos/ros2_upstream_ws/build/hardware_interface/Release/hardware_interface.lib and object C:/Users/melvi/git-repos/ros2_upstream_ws/build/hardware_interface/Release/hardware_interface.exp
hardware_interface.vcxproj -> C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\Release\hardware_interface.dll
Building Custom Rule C:/Users/melvi/git-repos/ros2_upstream_ws/src/ros-controls/ros2_control/hardware_interface/CMakeLists.txt
generic_system.cpp
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(34,1): warning C4275: non dll-interface class 'hardware_interface::SystemInterface' used as base for dll-interface class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/system_interface.hpp(67): message : see declaration of 'hardware_interface::SystemInterface' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(33): message : see declaration of 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(54,34): warning C4251: 'fake_components::GenericSystem::standard_interfaces_': class 'std::vector>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/hardware_info.hpp(75): message : see declaration of 'std::vector>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(66,27): warning C4251: 'fake_components::GenericSystem::mimic_joints_': class 'std::vector>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(66): message : see declaration of 'std::vector>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(69,36): warning C4251: 'fake_components::GenericSystem::joint_commands_': class 'std::vector>,std::allocator>>>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(69): message : see declaration of 'std::vector>,std::allocator>>>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(70,36): warning C4251: 'fake_components::GenericSystem::joint_states_': class 'std::vector>,std::allocator>>>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(69): message : see declaration of 'std::vector>,std::allocator>>>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(72,28): warning C4251: 'fake_components::GenericSystem::other_interfaces_': class 'std::vector>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/hardware_info.hpp(75): message : see declaration of 'std::vector>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(74,36): warning C4251: 'fake_components::GenericSystem::other_commands_': class 'std::vector>,std::allocator>>>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(69): message : see declaration of 'std::vector>,std::allocator>>>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(75,36): warning C4251: 'fake_components::GenericSystem::other_states_': class 'std::vector>,std::allocator>>>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(69): message : see declaration of 'std::vector>,std::allocator>>>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(77,28): warning C4251: 'fake_components::GenericSystem::sensor_interfaces_': class 'std::vector>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/hardware_info.hpp(75): message : see declaration of 'std::vector>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(79,36): warning C4251: 'fake_components::GenericSystem::sensor_fake_commands_': class 'std::vector>,std::allocator>>>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(69): message : see declaration of 'std::vector>,std::allocator>>>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(80,36): warning C4251: 'fake_components::GenericSystem::sensor_states_': class 'std::vector>,std::allocator>>>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(69): message : see declaration of 'std::vector>,std::allocator>>>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(82,28): warning C4251: 'fake_components::GenericSystem::gpio_interfaces_': class 'std::vector>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/hardware_info.hpp(75): message : see declaration of 'std::vector>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(84,36): warning C4251: 'fake_components::GenericSystem::gpio_fake_commands_': class 'std::vector>,std::allocator>>>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(69): message : see declaration of 'std::vector>,std::allocator>>>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(85,36): warning C4251: 'fake_components::GenericSystem::gpio_commands_': class 'std::vector>,std::allocator>>>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(69): message : see declaration of 'std::vector>,std::allocator>>>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(86,36): warning C4251: 'fake_components::GenericSystem::gpio_states_': class 'std::vector>,std::allocator>>>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(69): message : see declaration of 'std::vector>,std::allocator>>>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\fake_components/generic_system.hpp(109,15): warning C4251: 'fake_components::GenericSystem::custom_interface_with_following_offset_': class 'std::basic_string,std::allocator>' needs to have dll-interface to be used by clients of class 'fake_components::GenericSystem' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xstring(4905): message : see declaration of 'std::basic_string,std::allocator>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\fake_components.vcxproj]
Creating library C:/Users/melvi/git-repos/ros2_upstream_ws/build/hardware_interface/Release/fake_components.lib and object C:/Users/melvi/git-repos/ros2_upstream_ws/build/hardware_interface/Release/fake_components.exp
fake_components.vcxproj -> C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\Release\fake_components.dll
Building Custom Rule C:/dev/ros2_rolling/install/src/gmock_vendor/CMakeLists.txt
gtest-all.cc
gmock-all.cc
gmock.vcxproj -> C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\gmock\Release\gmock.lib
Building Custom Rule C:/dev/ros2_rolling/install/src/gmock_vendor/CMakeLists.txt
gmock_main.cc
gmock_main.vcxproj -> C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\gmock\Release\gmock_main.lib
Building Custom Rule C:/Users/melvi/git-repos/ros2_upstream_ws/src/ros-controls/ros2_control/hardware_interface/CMakeLists.txt
test_component_interfaces.cpp
test_component_interfaces.vcxproj -> C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\Release\test_component_interfaces.exe
Building Custom Rule C:/Users/melvi/git-repos/ros2_upstream_ws/src/ros-controls/ros2_control/hardware_interface/CMakeLists.txt
test_component_parser.cpp
test_component_parser.vcxproj -> C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\Release\test_component_parser.exe
Building Custom Rule C:/Users/melvi/git-repos/ros2_upstream_ws/src/ros-controls/ros2_control/hardware_interface/CMakeLists.txt
test_actuator.cpp
test_sensor.cpp
test_system.cpp
test_components.vcxproj -> C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\Release\test_components.dll
Building Custom Rule C:/Users/melvi/git-repos/ros2_upstream_ws/src/ros-controls/ros2_control/hardware_interface/CMakeLists.txt
test_generic_system.cpp
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(294,41): warning C4251: 'hardware_interface::ResourceManager::claimed_command_interface_map_': class 'std::unordered_map,std::equal_to,std::allocator>>' needs to have dll-interface to be used by clients of class 'hardware_interface::ResourceManager' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\test_generic_system.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(294): message : see declaration of 'std::unordered_map,std::equal_to,std::allocator>>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\test_generic_system.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(296,32): warning C4251: 'hardware_interface::ResourceManager::resource_lock_': class 'std::recursive_mutex' needs to have dll-interface to be used by clients of class 'hardware_interface::ResourceManager' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\test_generic_system.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\mutex(96): message : see declaration of 'std::recursive_mutex' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\test_generic_system.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(297,36): warning C4251: 'hardware_interface::ResourceManager::resource_storage_': class 'std::unique_ptr>' needs to have dll-interface to be used by clients of class 'hardware_interface::ResourceManager' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\test_generic_system.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(297): message : see declaration of 'std::unique_ptr>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\test_generic_system.vcxproj]
test_generic_system.vcxproj -> C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\Release\test_generic_system.exe
Building Custom Rule C:/Users/melvi/git-repos/ros2_upstream_ws/src/ros-controls/ros2_control/hardware_interface/CMakeLists.txt
test_single_joint_actuator.cpp
test_force_torque_sensor.cpp
test_two_joint_system.cpp
test_system_with_command_modes.cpp
test_hardware_components.vcxproj -> C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\Release\test_hardware_components.dll
Building Custom Rule C:/Users/melvi/git-repos/ros2_upstream_ws/src/ros-controls/ros2_control/hardware_interface/CMakeLists.txt
test_handle.cpp
test_joint_handle.vcxproj -> C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\Release\test_joint_handle.exe
Building Custom Rule C:/Users/melvi/git-repos/ros2_upstream_ws/src/ros-controls/ros2_control/hardware_interface/CMakeLists.txt
test_macros.cpp
test_macros.vcxproj -> C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\Release\test_macros.exe
Building Custom Rule C:/Users/melvi/git-repos/ros2_upstream_ws/src/ros-controls/ros2_control/hardware_interface/CMakeLists.txt
test_resource_manager.cpp
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(294,41): warning C4251: 'hardware_interface::ResourceManager::claimed_command_interface_map_': class 'std::unordered_map,std::equal_to,std::allocator>>' needs to have dll-interface to be used by clients of class 'hardware_interface::ResourceManager' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\test_resource_manager.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(294): message : see declaration of 'std::unordered_map,std::equal_to,std::allocator>>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\test_resource_manager.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(296,32): warning C4251: 'hardware_interface::ResourceManager::resource_lock_': class 'std::recursive_mutex' needs to have dll-interface to be used by clients of class 'hardware_interface::ResourceManager' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\test_resource_manager.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\mutex(96): message : see declaration of 'std::recursive_mutex' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\test_resource_manager.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(297,36): warning C4251: 'hardware_interface::ResourceManager::resource_storage_': class 'std::unique_ptr>' needs to have dll-interface to be used by clients of class 'hardware_interface::ResourceManager' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\test_resource_manager.vcxproj]
C:\Users\melvi\git-repos\ros2_upstream_ws\src\ros-controls\ros2_control\hardware_interface\include\hardware_interface/resource_manager.hpp(297): message : see declaration of 'std::unique_ptr>' [C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\test_resource_manager.vcxproj]
test_resource_manager.vcxproj -> C:\Users\melvi\git-repos\ros2_upstream_ws\build\hardware_interface\Release\test_resource_manager.exe
Building Custom Rule C:/Users/melvi/git-repos/ros2_upstream_ws/src/ros-controls/ros2_control/hardware_interface/CMakeLists.txt
-- Execute custom install script
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/share/hardware_interface//fake_components_plugin_description.xml
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/fake_components/generic_system.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/fake_components/visibility_control.h
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/actuator.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/actuator_interface.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/component_parser.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/controller_info.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/handle.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/hardware_info.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/loaned_command_interface.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/loaned_state_interface.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/macros.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/resource_manager.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/sensor.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/sensor_interface.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/system.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/system_interface.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/types/hardware_interface_return_values.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/types/hardware_interface_type_values.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/types/lifecycle_state_names.hpp
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/include/hardware_interface/visibility_control.h
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/bin/fake_components.dll
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/lib/fake_components.lib
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/bin/hardware_interface.dll
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/lib/hardware_interface.lib
-- Symlinking: C:/Users/melvi/git-repos/ros2_upstream_ws/install/lib/test_components.dll
CMake Error at ament_cmake_symlink_install/ament_cmake_symlink_install.cmake:267 (message):
ament_cmake_symlink_install_targets() can't find
'C:/Users/melvi/git-repos/ros2_upstream_ws/build/hardware_interface/Release/test_components.lib'
Call Stack (most recent call first):
ament_cmake_symlink_install_targets_1_Release.cmake:1 (ament_cmake_symlink_install_targets)
ament_cmake_symlink_install/ament_cmake_symlink_install.cmake:323 (include)
cmake_install.cmake:36 (include)

---
--- stderr: hardware_interface
CMake Error at ament_cmake_symlink_install/ament_cmake_symlink_install.cmake:267 (message):
ament_cmake_symlink_install_targets() can't find
'C:/Users/melvi/git-repos/ros2_upstream_ws/build/hardware_interface/Release/test_components.lib'
Call Stack (most recent call first):
ament_cmake_symlink_install_targets_1_Release.cmake:1 (ament_cmake_symlink_install_targets)
ament_cmake_symlink_install/ament_cmake_symlink_install.cmake:323 (include)
cmake_install.cmake:36 (include)

---
Failed <<< hardware_interface [37.8s, exited with code 1]

Summary: 2 packages finished [1min 39s]
1 package failed: hardware_interface
1 package had stderr output: hardware_interface
```

[CMakeLists.txt](https://github.com/ros-controls/ros2_control/blob/master/hardware_interface/CMakeLists.txt)

This is happening on Windows11, ros2 rolling latest `ament_cmake`, latest `ros2_control`.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。