Many ROS packages adopt this visibility control header to make the packages Windows-compatible. And the visibility control is conditionally guarded by ROS_BUILD_SHARED_LIBS which is defined by catkin in CMake file.
However, for sip module, it is running its own Makefile generated by sip, and this important definition (ROS_BUILD_SHARED_LIBS) is not automatically inherited. In such case, when it is building the sip module and ROS visibility control headers are in use there, it doesn't use the expected visibility control code path.
Many ROS packages adopt this visibility control header to make the packages Windows-compatible. And the visibility control is conditionally guarded by
ROS_BUILD_SHARED_LIBS
which is defined by catkin in CMake file.However, for
sip
module, it is running its own Makefile generated bysip
, and this important definition (ROS_BUILD_SHARED_LIBS
) is not automatically inherited. In such case, when it is building thesip
module and ROS visibility control headers are in use there, it doesn't use the expected visibility control code path.