ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

Why can't ros_pcl detect my pcl headers when building?

asked 2015-12-19 20:36:24 -0500

Sebastian gravatar image

updated 2015-12-19 20:39:06 -0500

I am using raspberry pi and building pcl_ros from source.

I already downloaded, built and installed pcl. I believe it is installed, since there are cmake files in /usr/local/share/pcl-1.7

When I run the command:

sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --pkg pcl_ros --install-space /opt/ros/indigo

I get the following error message:

/home/pi/catkin_ws/src/perception_pcl/pcl_ros/src/pcl_ros/surface/convex_hull.cpp:40:37: fatal error: pcl/surface/convex_hull.h: No such file or directory
CMakeFiles/pcl_ros_features.dir/build.make:54: recipe for target 'CMakeFiles/pcl_ros_features.dir/src/pcl_ros/features/feature.cpp.o' failed

I also know that ~/pcl-pcl-1.7.2/ surface/include/pcl/surface/convex_hull.h exists.

I followed these instructions when building pcl from source.

Anyone know what might cause this problem?

edit retag flag offensive close merge delete


You probably have not fully built pcl because of some missing dependencies. Check if surface/convex_hull.h exist in /usr/local/include/pcl-1.7/pcl. Can you paste the output of the "cmake .." call

Humpelstilzchen gravatar image Humpelstilzchen  ( 2015-12-21 01:30:25 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2015-12-30 16:13:34 -0500

Sebastian gravatar image

updated 2015-12-30 16:13:50 -0500

I just copied the missing .h file from ~/pcl-pcl-1.7.2/ to /usr/local/include/pcl-1.7/pcl/surface/convex_hull.h

Apparently just one file was not installed. Might be a mistake in the pcl source. Not sure what else might have caused it.

edit flag offensive delete link more


Nice! You should open a ticket in PCL ( )

paulbovbel gravatar image paulbovbel  ( 2016-01-10 18:57:16 -0500 )edit

answered 2015-12-28 07:36:27 -0500

paulbovbel gravatar image

When the pcl_ros CMakeLists pulls in pcl (via find_package), it does not know to look in ~/pcl-* for your PCL headers.

One approach would be to install PCL by running sudo make install wherever you had built it from source.

edit flag offensive delete link more


If he has /usr/local/share/pcl-1.7 then there is a high chance he already did execute make install..

Humpelstilzchen gravatar image Humpelstilzchen  ( 2015-12-28 08:45:24 -0500 )edit

I did run sudo make install. See my answer.

Sebastian gravatar image Sebastian  ( 2015-12-30 16:10:53 -0500 )edit

Missed that, my bad

paulbovbel gravatar image paulbovbel  ( 2016-01-10 18:57:59 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2015-12-19 20:36:24 -0500

Seen: 1,897 times

Last updated: Dec 30 '15