Я скачал демонстрацию ROS2 из репозитория examples .
В частности, я использовал minimal_subscriber и minimal_publisher .
У меня установлен ROS2 в /opt/ros2
, и когда я строю эти два примера с colcon build
, он генерирует каталог install/
с lib/
, shared/
и другую обычную структуру каталогов.
Я могу прекрасно выполнить и запустить эти демонстрационные примеры с моими текущими настройками на моем компьютере, но эти исполняемые файлы ссылаются на библиотеки, присутствующие в /opt/ros2
, поэтому, когда я хочу выполнить их на другом компьютере без установленной ROS2, или я перенесу установку ROS2 в моя машина, исполняемые файлы не могут найти общие объекты.
Я добавил действительно простой скрипт, который добавляет все зависимости к install/lib
при сборке, но исполняемые файлы, кажется, не заботятся, они не ищут для общих библиотек в сгенерированном каталоге lib
они продолжают искать в /opt/ros2
.
Я считаю, что это то, что я должен решить, я n CMake, и это не спецификация ROS2 c, так есть ли способ, с помощью которого я могу сказать моим сгенерированным исполняемым файлам искать в другом каталоге? (../lib
или ./lib
в моем случае)