ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

Both libPocoFoundation.so.50 and libtinyxml2.so.6 come from vendor packages, as this one https://github.com/ros2/poco_vendor

They consist of a CMakeLists.txt file which install the specific third party library.

In particular at build time CMake will check whether the library is already installed on the system/sysroot. The package will be built only if the library is not found.

This could create problems when cross-compiling, since it may be that your sysroot or host system includes it, but the target system does not.

Few days ago there have been some commits to all these vendor packages to allow their cross-compilation (before they were not reading the CMake Flags, thus the cross-compiled binaries were still x86_64). Moreover they added a flag FORCE_BUILD_VENDOR_PKG which should solve the problem: with this flag enabled, the package will always be built in the workspace, regardless of the fact if it was present in the systm or not.

Both libPocoFoundation.so.50 and libtinyxml2.so.6 come from vendor packages, as this one https://github.com/ros2/poco_vendor

They consist of a CMakeLists.txt file which install the specific third party library.

In particular at build time CMake will check whether the library is already installed on the system/sysroot. The package will be built only if the library is not found.

This could create problems when cross-compiling, since it may be that your sysroot or host system includes it, but the target system does not.

As a solution, you have either to install them in the target system or make sure that they are not found while cross-compiling.

Few days ago there have been some commits to all these vendor packages to allow their cross-compilation (before they were not reading the CMake Flags, thus the cross-compiled binaries were still x86_64). Moreover they added a flag FORCE_BUILD_VENDOR_PKG which should solve the problem: with this flag enabled, the package will always be built in the workspace, regardless of the fact if it was present in the systm or not.