Deploy ROS binary to systems without ROS installed?
I have a little working publisher node that I compile with catkin_simple and I need to make a deployable package that runs in other systems without ros installed.
Right now my CMakeLists.txt
looks like this:
cmake_minimum_required(VERSION 3.13.4)
set (CMAKE_CXX_STANDARD 11)
project (test)
find_package(catkin_simple REQUIRED)
catkin_simple()
cs_add_executable(${PROJECT_NAME}
src/main.cpp
)
cs_install()
cs_export()
Everything works fine on my machine, a install
folder gets created and I have my binary there, run it, and everything works fine. However, when I move it to another machine without ROS installed, it doesn't work, it tries to search for the core ROS libraries in /opt/ros/kinetic/lib/
(That's also the path where I have ROS installed in my development machine) and it obviously can't find them.
Is there any way to create a compiled package with all the necessary dependencies to be able to run it even if the system doesn't have ROS installed?
Thank you all in advance
Asked by Mayu on 2019-11-21 10:41:51 UTC
Comments
Quick suggestion: look into containers (Docker, Singularity) or technologies like snap, flatpack or appimage.
Asked by gvdhoorn on 2019-11-21 10:46:14 UTC
It is the name ROS, so it is more like a wohle system not just a Programm.
Because then you have to name it ROP :-) But @gvdhoorn has the right answer for your problem
Asked by duck-development on 2019-11-21 11:43:08 UTC