drone_demo icon indicating copy to clipboard operation
drone_demo copied to clipboard

Getting error "No rule to make target 'src/modules/micrortps_bridge/micrortps_client/microRTPS_client.cpp'"

Open guriandoro opened this issue 3 years ago • 0 comments

Hi all!

I'm trying to build a drone_demo Docker image manually (because I want to introduce some changes to the launch file in use) and I'm getting some errors on compile time.

I've made some minimal changes so far, mostly install packages/dependencies with apt-get and pip3. When running the first build command (colcon build ...), it fails on the px4 project with the following:

root@3da53b27dc02:/workspace/drone_demo_ros2# tail -f log/latest/px4/stdout_stderr.log
...
Scanning dependencies of target events_json
make[6]: *** No rule to make target 'src/modules/micrortps_bridge/micrortps_client/microRTPS_client.cpp', needed by 'events/px4.json'.  Stop.
CMakeFiles/Makefile2:12114: recipe for target 'src/lib/events/CMakeFiles/events_json.dir/all' failed
make[5]: *** [src/lib/events/CMakeFiles/events_json.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make[4]: *** [all] Error 2
Makefile:225: recipe for target 'px4_sitl_rtps' failed
make[3]: *** [px4_sitl_rtps] Error 2
make[2]: *** [firmware-prefix/src/firmware-stamp/firmware-build] Error 2
CMakeFiles/firmware.dir/build.make:110: recipe for target 'firmware-prefix/src/firmware-stamp/firmware-build' failed
CMakeFiles/Makefile2:131: recipe for target 'CMakeFiles/firmware.dir/all' failed
make[1]: *** [CMakeFiles/firmware.dir/all] Error 2
make: *** [all] Error 2
Makefile:140: recipe for target 'all' failed

I'm running this in a minimally modified Dockerfile that supports for creating a container that runs a "perpetual" command so I can have direct login with docker exec -it ... bash and manually run the compile command, and the tail -f to check the logs (kind of a hack, because I wasn't getting enough information out of the docker build outputs, but is not the source of issues, for sure).

Before this, I have also tried to upgrade ROS2 to Foxy (by importing FROM osrf/ros:foxy-desktop) and ended up with the same error outputs.

The only thing I changed in the project itself was in drone_demo/px4/CMakeLists.txt was the configure command to blank, because the patch used was giving errors (the files don't exist anymore --and by the way, the project changed names from Firmware to PX4-Autopilot, so I'm not sure the extent of incompatibilities that may lie here--):

  CONFIGURE_COMMAND ""

The configure command before was:

  CONFIGURE_COMMAND wget -q https://raw.githubusercontent.com/PX4/Firmware/master/msg/tools/uorb_rtps_message_ids.yaml -O uorb_rtps_message_ids.yaml
                    && patch --batch uorb_rtps_message_ids.yaml ${CMAKE_CURRENT_SOURCE_DIR}/config/uorb_rtps_message_ids.patch -o ./msg/tools/uorb_rtps_message_ids.yaml

The error was:

[ 62%] Performing configure step for 'firmware'
CMakeFiles/firmware.dir/build.make:105: recipe for target 'firmware-prefix/src/firmware-stamp/firmware-configure' failed
make[2]: *** [firmware-prefix/src/firmware-stamp/firmware-configure] Error 8
CMakeFiles/Makefile2:131: recipe for target 'CMakeFiles/firmware.dir/all' failed
Makefile:140: recipe for target 'all' failed
make[1]: *** [CMakeFiles/firmware.dir/all] Error 2
make: *** [all] Error 2

You just need to try and access the URL used in the configure command to see that it's not there anymore (and I couldn't find that file anywhere in the current version, a commit deleted it).

So, as you can see, I'm a bit lost as to how to move forward with it. I've been trying to take a stab at this for some weeks already, and I think I'm now going in circles. I've tried to use a newer eProsima version, and check the online docs (like https://docs.px4.io/master/en/dev_setup/fast-dds-installation.html) but I'm getting nowhere.

Do you have any ideas on how I can move forward with this? Let me know if you need any other details/commands/outputs and I'll be glad to update this thread.

Thanks in advance!

guriandoro avatar Oct 08 '21 21:10 guriandoro