gpg icon indicating copy to clipboard operation
gpg copied to clipboard

Build error: ‘set’ is not a member of ‘std’

Open RaduCorcodel opened this issue 5 years ago • 3 comments

I'm trying to build this on an Ubuntu 16 machine. When building I get this error:

[ 50%] Built target gpg_antipodal /homes/corcodel/gpd/gpg/src/gpg/cloud_camera.cpp: In member function ‘void CloudCamera::voxelizeCloud(double)’: /homes/corcodel/gpd/gpg/src/gpg/cloud_camera.cpp:237:3: error: ‘set’ is not a member of ‘std’ std::set< Eigen::Vector4i, CloudCamera::UniqueVectorFirstThreeElementsComparator> bins; ^ /homes/corcodel/gpd/gpg/src/gpg/cloud_camera.cpp:237:3: note: suggested alternatives: In file included from /usr/include/boost/fusion/container/set/detail/preprocessed/set_fwd.hpp:11:0, from /usr/include/boost/fusion/container/set/set_fwd.hpp:15, from /usr/include/boost/fusion/mpl/detail/clear.hpp:14, from /usr/include/boost/fusion/mpl/clear.hpp:13, from /usr/include/boost/fusion/mpl.hpp:17, from /usr/include/boost/fusion/include/mpl.hpp:12, from /usr/local/include/pcl-1.9/pcl/common/impl/accumulators.hpp:44, from /usr/local/include/pcl-1.9/pcl/common/centroid.h:954, from /usr/local/include/pcl-1.9/pcl/features/normal_3d.h:45, from /usr/local/include/pcl-1.9/pcl/features/normal_3d_omp.h:43, from /homes/corcodel/gpd/gpg/include/gpg/cloud_camera.h:45, from /homes/corcodel/gpd/gpg/src/gpg/cloud_camera.cpp:1: /usr/include/boost/fusion/container/set/detail/preprocessed/set10_fwd.hpp:17:12: note: ‘boost::fusion::set’ struct set; ^ In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:51:0, from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:34, from /usr/include/boost/lexical_cast.hpp:32, from /usr/include/boost/date_time/string_parse_tree.hpp:13, from /usr/include/boost/date_time/period_parser.hpp:14, from /usr/include/boost/date_time/date_facet.hpp:23, from /usr/include/boost/date_time/gregorian/gregorian_io.hpp:16, from /usr/include/boost/date_time/gregorian/gregorian.hpp:31, from /usr/include/boost/date_time/posix_time/time_formatters.hpp:12, from /usr/include/boost/date_time/posix_time/posix_time.hpp:24, from /usr/local/include/pcl-1.9/pcl/io/boost.h:58, from /usr/local/include/pcl-1.9/pcl/io/file_io.h:42, from /usr/local/include/pcl-1.9/pcl/io/pcd_io.h:44, from /homes/corcodel/gpd/gpg/include/gpg/cloud_camera.h:49, from /homes/corcodel/gpd/gpg/src/gpg/cloud_camera.cpp:1: /usr/include/boost/container/container_fwd.hpp:126:7: note: ‘boost::container::set’ class set; ^

Any ideas what might it be?

RaduCorcodel avatar Dec 12 '19 18:12 RaduCorcodel

Update: I tried it on a different machine and it builds just fine. It's definitely related to my machine. Though I really wish I knew what...

RaduCorcodel avatar Dec 12 '19 18:12 RaduCorcodel

I have the same issue. I'm trying to build gpd (so also gpg) inside a Docker container based on Ubuntu 18.04. This particular problem seems to be easy to fix by including lib in cloud_camera.h. But later on compilation fails again, likely because of boost lib incompatibility (Ubuntu 18 ships with boost 1.65.1). I managed to build in on Ubuntu 16.04 machine without any problems.

Does it mean that gpg/gpd is not compatible with Ubuntu 18.04/ROS Melodic?

fitter22 avatar Jan 30 '20 13:01 fitter22

Small update about this particular issue. I decided to look at it again and I found out that its not related to Ubuntu version. In my case, I can build gpg from ros-kinetic-16.04 img from OSRF, but build on cuda-ubuntu-16.04 fails.

Errors returned from g++ seems logical and related to the code of gpd. But then I cannot really explain why that package builds nicely on some system setups

fitter22 avatar Feb 03 '20 14:02 fitter22