On ARM L4T distro I have to run catkin_make multiple times to compile

asked 2021-01-05 08:37:32 -0500

ia gravatar image

On my x86 machine, this package compiles fine for me on ros melodic. But on ARM platform (L4T 32.4.4 for NVidia Jetson) it will only compile for me if I run catkin_make _more than once_.

I did notice there wasn't an add_dependencies so I added:

add_dependencies(curve_fitting ${catkin_EXPORTED_TARGETS})

After the declared executable target for curve_fitting.

Why would running catkin_make multiple times work? And why would this issue only creep up on an ARM architecture?

Here's the logs from my docker container that runs catkin_make multiple times, successfully compiling on the last one. What I'm noticing is there appears to be a race condition where catkin_make doesn't get around to generating cpp messages until the second time I run catkin_make. The first time only python/js/lisp messages are generated:

Step 6/6 : RUN . "$ROS_WS/devel/setup.sh" && catkin_make -DCMAKE_BUILD_TYPE=Release || true && catkin_make -DCMAKE_BUILD_TYPE=Release || true && catkin_make -DCMAKE_BUILD_TYPE=Release && chmod +x "$ROS_WS/src/LaneNetRos/scripts/lanenet_node.py" ---> Running in 0aa6b617a649 -- Using CATKIN_DEVEL_PREFIX: /opt/ros_ws/devel -- Using CMAKE_PREFIX_PATH: /opt/ros_ws/devel;/opt/ros/melodic -- This workspace overlays: /opt/ros_ws/devel;/opt/ros/melodic -- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.17", minimum required is "2") -- Using PYTHON_EXECUTABLE: /usr/bin/python2 -- Using Debian Python package layout -- Using empy: /usr/bin/empy -- Using CATKIN_ENABLE_TESTING: ON -- Call enable_testing() -- Using CATKIN_TEST_RESULTS_DIR: /opt/ros_ws/build/test_results -- Found gtest sources under '/usr/src/googletest': gtests will be built -- Found gmock sources under '/usr/src/googletest': gmock will be built -- Found PythonInterp: /usr/bin/python2 (found version "2.7.17") -- Using Python nosetests: /usr/bin/nosetests-2.7 -- catkin 0.7.29 -- BUILD_SHARED_LIBS is on -- BUILD_SHARED_LIBS is on -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ~~ traversing 1 packages in topological order: -- ~~ - lane_detector -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- +++ processing catkin package: 'lane_detector' -- ==> add_subdirectory(LaneNetRos) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Found OpenCV: /usr (found version "3.2.0") -- lane_detector: 3 messages, 0 services -- Configuring done -- Generating done -- Build files have been written to: /opt/ros_ws/build Scanning dependencies of target std_msgs_generate_messages_py Scanning dependencies of target geometry_msgs_generate_messages_nodejs [ 0%] Built target std_msgs_generate_messages_py [ 0%] Built target geometry_msgs_generate_messages_nodejs Scanning dependencies of target std_msgs_generate_messages_eus Scanning dependencies of target std_msgs_generate_messages_nodejs [ 0%] Built target std_msgs_generate_messages_eus [ 0%] Built target std_msgs_generate_messages_nodejs Scanning dependencies of target rosgraph_msgs_generate_messages_nodejs Scanning dependencies of target rosgraph_msgs_generate_messages_py [ 0%] Built target rosgraph_msgs_generate_messages_py [ 0%] Built target rosgraph_msgs_generate_messages_nodejs Scanning dependencies of target std_msgs_generate_messages_cpp Scanning dependencies of target rosgraph_msgs_generate_messages_lisp [ 0%] Built target rosgraph_msgs_generate_messages_lisp [ 0%] Built target std_msgs_generate_messages_cpp Scanning dependencies of target std_msgs_generate_messages_lisp Scanning dependencies of target rosgraph_msgs_generate_messages_eus [ 0%] Built target rosgraph_msgs_generate_messages_eus [ 0%] Built target std_msgs_generate_messages_lisp Scanning dependencies of target sensor_msgs_generate_messages_eus Scanning dependencies of target sensor_msgs_generate_messages_cpp [ 0%] Built target sensor_msgs_generate_messages_eus [ 0%] Built target sensor_msgs_generate_messages_cpp Scanning dependencies of target roscpp_generate_messages_lisp Scanning dependencies of target rosgraph_msgs_generate_messages_cpp [ 0%] Built target roscpp_generate_messages_lisp [ 0%] Built target rosgraph_msgs_generate_messages_cpp Scanning dependencies of target roscpp_generate_messages_nodejs Scanning dependencies of target roscpp_generate_messages_eus [ 0%] Built target roscpp_generate_messages_eus [ 0%] Built target roscpp_generate_messages_nodejs Scanning dependencies of target geometry_msgs_generate_messages_eus Scanning dependencies of target roscpp_generate_messages_py [ 0%] Built target roscpp_generate_messages_py [ 0%] Built target geometry_msgs_generate_messages_eus Scanning dependencies of target sensor_msgs_generate_messages_lisp Scanning dependencies ...

(more)
edit retag flag offensive close merge delete