NVIDIA-ISAAC-ROS / NVIDIA-ISAAC-ROS/isaac_ros_common
Finding PCL dependency fails in Dev environment built with Dockerfile.x86_64
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 317
- Forks
- 227
- PR merge metrics
- No merged PRs in 30d
Description
I used run_dev.sh to build the base Docker image on the host platform (x86_64).
I then built another Docker image layer on top of this base image that includes debian install of the pcl packages:
RUN apt-get update && apt-get install -y \
[...]
ros-humble-pcl-conversions \
ros-humble-pcl-msgs \
However, when then building a set of my own ros2 packages with colcon build (inside the Docker container as part of another Dockerfile image layer on top), which contain a dependency on PCL and have the corresponding build depends, find()s, and includes in package.xml/CMakeLists.txt, I get the following Cmake build error:
Imported target "MPI::MPI_C" includes non-existent path
"/opt/hpcx/ompi/lib/x86_64-linux-gnu/openmpi/include"
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not
provide.
CMake Error at /usr/share/cmake-3.22/Modules/FindMPI.cmake:1264 (try_compile):
Failed to generate test project build system.
Call Stack (most recent call first):
/usr/share/cmake-3.22/Modules/FindMPI.cmake:1315 (_MPI_try_staged_settings)
/usr/share/cmake-3.22/Modules/FindMPI.cmake:1638 (_MPI_check_lang_works)
/usr/lib/x86_64-linux-gnu/cmake/vtk-9.1/VTK-vtk-module-find-packages.cmake:397 (find_package)
/usr/lib/x86_64-linux-gnu/cmake/vtk-9.1/vtk-config.cmake:150 (include)
/usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfig.cmake:270 (find_package)
/usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfig.cmake:319 (find_VTK)
/usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfig.cmake:540 (find_external_library)
CMakeLists.txt:19 (find_package)
gmake: *** [Makefile:308: cmake_check_build_system] Error 1
Notably:
- This error did not occur before the switch to Isaac-ROS 3 and the change of the 'run_dev' build process.
- This error does not occur when compiled for arm64 with the "Dockerfile.aarch64" and the rest being the same set of build steps.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read run_dev.sh and compare Dockerfile.x86_64 with Dockerfile.aarch64, focusing on how the base image is built. Trace the failure from CMakeLists.txt line 19 through PCLConfig.cmake and FindMPI.cmake. Done means an x86_64 Docker-based colcon build can find PCL without the missing MPI include path error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp, docker
- Domain
- build-system, devops
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100