[ 55%] Built target pcl_tracking
make -f recognition/CMakeFiles/pcl_recognition.dir/build.make recognition/CMakeFiles/pcl_recognition.dir/depend
make[2]: Entering directory '....../pcl/build'
cd ....../pcl/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" ....../pcl ....../pcl/recognition ....../pcl/build ....../pcl/build/recognition ....../pcl/build/recognition/CMakeFiles/pcl_recognition.dir/DependInfo.cmake "--color="
make[2]: Leaving directory '....../pcl/build'
make -f recognition/CMakeFiles/pcl_recognition.dir/build.make recognition/CMakeFiles/pcl_recognition.dir/build
make[2]: Entering directory '....../pcl/build'
cd ....../pcl/build/recognition && ....../pcl/cmake/custom_output.sh /usr/bin/c++ -DBOOST_ATOMIC_DYN_LINK -DBOOST_ATOMIC_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_FILESYSTEM_NO_LIB -DBOOST_IOSTREAMS_DYN_LINK -DBOOST_IOSTREAMS_NO_LIB -DELPP_NO_DEFAULT_LOG_FILE -DPCLAPI_EXPORTS -I....../pcl/build/include -I....../pcl/common/include -I....../pcl/io/include -I....../pcl/search/include -I....../pcl/kdtree/include -I....../pcl/octree/include -I....../pcl/features/include -I....../pcl/filters/include -I....../pcl/registration/include -I....../pcl/sample_consensus/include -I....../pcl/ml/include -I....../pcl/recognition/include -isystem /usr/local/include/metslib-0.5 -isystem /usr/local/lib/metslib-0.5/include -isystem /usr/include/eigen3 -Wabi=11 -Wall -Wextra -fno-strict-aliasing -msse4.2 -mfpmath=sse -march=native -mavx2 -fopenmp -O2 -g -DNDEBUG -std=c++14 -fPIC -fopenmp -MD -MT recognition/CMakeFiles/pcl_recognition.dir/src/hv/hv_go.cpp.o -MF CMakeFiles/pcl_recognition.dir/src/hv/hv_go.cpp.o.d -o CMakeFiles/pcl_recognition.dir/src/hv/hv_go.cpp.o -c ....../pcl/recognition/src/hv/hv_go.cpp
In file included from /usr/local/include/metslib-0.5/metslib/mets.hh:129,
from ....../pcl/recognition/include/pcl/recognition/hv/hv_go.h:24,
from ....../pcl/recognition/include/pcl/recognition/impl/hv/hv_go.hpp:40,
from ....../pcl/recognition/src/hv/hv_go.cpp:37:
/usr/local/include/metslib-0.5/metslib/model.hh: In function ‘void mets::random_shuffle(permutation_problem&, random_generator&)’:
/usr/local/include/metslib-0.5/metslib/model.hh:249:10: error: ‘variate_generator’ is not a member of ‘std’
249 | std::variate_generator<random_generator&,
| ^~~~~~~~~~~~~~~~~
/usr/local/include/metslib-0.5/metslib/model.hh:249:10: note: suggested alternatives:
In file included from ....../pcl/recognition/include/pcl/recognition/hv/hv_go.h:18:
/usr/include/boost/random/variate_generator.hpp:51:7: note: ‘boost::random::variate_generator’
51 | class variate_generator
| ^~~~~~~~~~~~~~~~~
/usr/include/boost/random/variate_generator.hpp:51:7: note: ‘boost::random::variate_generator’
/usr/local/include/metslib-0.5/metslib/model.hh:249:44: error: expected primary-expression before ‘&’ token
249 | std::variate_generator<random_generator&,
| ^
/usr/local/include/metslib-0.5/metslib/model.hh:249:45: error: expected primary-expression before ‘,’ token
249 | std::variate_generator<random_generator&,
| ^
/usr/local/include/metslib-0.5/metslib/model.hh:250:45: error: expected primary-expression before ‘>’ token
250 | std::uniform_int_distribution<size_t> >gen(rng, unigen);
| ^
/usr/local/include/metslib-0.5/metslib/model.hh:256:55: error: ‘gen’ was not declared in this scope; did you mean ‘get’?
256 | std::random_shuffle(p.pi_m.begin(), p.pi_m.end(), gen);
| ^~~
| get
In file included from /usr/local/include/metslib-0.5/metslib/mets.hh:134:
/usr/local/include/metslib-0.5/metslib/simulated-annealing.hh: At global scope:
/usr/local/include/metslib-0.5/metslib/simulated-annealing.hh:137:10: error: ‘uniform_real’ in namespace ‘std’ does not name a template type
137 | std::uniform_real<double> ureal;
| ^~~~~~~~~~~~
/usr/local/include/metslib-0.5/metslib/simulated-annealing.hh:139:10: error: ‘variate_generator’ in namespace ‘std’ does not name a template type
139 | std::variate_generator< std::mt19937, std::uniform_real<double> > gen;
| ^~~~~~~~~~~~~~~~~
/usr/local/include/metslib-0.5/metslib/simulated-annealing.hh: In constructor ‘mets::simulated_annealing<move_manager_type>::simulated_annealing(mets::evaluable_solution&, mets::solution_recorder&, move_manager_t&, mets::termination_criteria_chain&, mets::abstract_cooling_schedule&, double, double, double)’:
/usr/local/include/metslib-0.5/metslib/simulated-annealing.hh:195:5: error: class ‘mets::simulated_annealing<move_manager_type>’ does not have any field named ‘ureal’
195 | ureal(0.0,1.0), rng(), gen(rng, ureal)
| ^~~~~
/usr/local/include/metslib-0.5/metslib/simulated-annealing.hh:195:28: error: class ‘mets::simulated_annealing<move_manager_type>’ does not have any field named ‘gen’
195 | ureal(0.0,1.0), rng(), gen(rng, ureal)
| ^~~
/usr/local/include/metslib-0.5/metslib/simulated-annealing.hh:195:37: error: ‘ureal’ was not declared in this scope
195 | ureal(0.0,1.0), rng(), gen(rng, ureal)
| ^~~~~
/usr/local/include/metslib-0.5/metslib/simulated-annealing.hh: In member function ‘virtual void mets::simulated_annealing<move_manager_type>::search()’:
/usr/local/include/metslib-0.5/metslib/simulated-annealing.hh:225:27: error: there are no arguments to ‘gen’ that depend on a template parameter, so a declaration of ‘gen’ must be available [-fpermissive]
225 | if(delta < 0 || gen() < exp(-delta/(K_m*current_temp_m)))
| ^~~
/usr/local/include/metslib-0.5/metslib/simulated-annealing.hh:225:27: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
....../pcl/recognition/include/pcl/recognition/impl/hv/hv_go.hpp: In instantiation of ‘void pcl::GlobalHypothesesVerification<ModelT, SceneT>::SAOptimize(std::vector<int, std::allocator<int> >&, std::vector<bool>&) [with ModelT = pcl::PointXYZ; SceneT = pcl::PointXYZ]’:
....../pcl/recognition/src/hv/hv_go.cpp:42:1: required from here
....../pcl/recognition/include/pcl/recognition/impl/hv/hv_go.hpp:456:6: error: ‘class mets::simulated_annealing<pcl::GlobalHypothesesVerification<pcl::PointXYZ, pcl::PointXYZ>::move_manager>’ has no member named ‘setApplyAndEvaluate’
456 | sa.setApplyAndEvaluate(true);
| ~~~^~~~~~~~~~~~~~~~~~~
....../pcl/recognition/include/pcl/recognition/impl/hv/hv_go.hpp: In instantiation of ‘void pcl::GlobalHypothesesVerification<ModelT, SceneT>::SAOptimize(std::vector<int, std::allocator<int> >&, std::vector<bool>&) [with ModelT = pcl::PointXYZRGB; SceneT = pcl::PointXYZRGB]’:
....../pcl/recognition/src/hv/hv_go.cpp:43:1: required from here
....../pcl/recognition/include/pcl/recognition/impl/hv/hv_go.hpp:456:6: error: ‘class mets::simulated_annealing<pcl::GlobalHypothesesVerification<pcl::PointXYZRGB, pcl::PointXYZRGB>::move_manager>’ has no member named ‘setApplyAndEvaluate’
....../pcl/recognition/include/pcl/recognition/impl/hv/hv_go.hpp: In instantiation of ‘void pcl::GlobalHypothesesVerification<ModelT, SceneT>::SAOptimize(std::vector<int, std::allocator<int> >&, std::vector<bool>&) [with ModelT = pcl::PointXYZRGBA; SceneT = pcl::PointXYZRGBA]’:
....../pcl/recognition/src/hv/hv_go.cpp:44:1: required from here
....../pcl/recognition/include/pcl/recognition/impl/hv/hv_go.hpp:456:6: error: ‘class mets::simulated_annealing<pcl::GlobalHypothesesVerification<pcl::PointXYZRGBA, pcl::PointXYZRGBA>::move_manager>’ has no member named ‘setApplyAndEvaluate’
*** Built object hv_go.cpp.o from ....../pcl/recognition/src/hv/hv_go.cpp in 7802 ms.
cd ....../pcl/build/recognition && /usr/bin/cmake -E cmake_link_script CMakeFiles/pcl_recognition.dir/link.txt --verbose=1
/usr/bin/c++ -fPIC -Wabi=11 -Wall -Wextra -fno-strict-aliasing -msse4.2 -mfpmath=sse -march=native -mavx2 -fopenmp -O2 -g -DNDEBUG -Wl,--as-needed -shared -Wl,-soname,libpcl_recognition.so.1.14 -o ../lib/libpcl_recognition.so.1.14.0.99 CMakeFiles/pcl_recognition.dir/src/linemod.cpp.o CMakeFiles/pcl_recognition.dir/src/quantizable_modality.cpp.o CMakeFiles/pcl_recognition.dir/src/dotmod.cpp.o CMakeFiles/pcl_recognition.dir/src/mask_map.cpp.o CMakeFiles/pcl_recognition.dir/src/hv/occlusion_reasoning.cpp.o CMakeFiles/pcl_recognition.dir/src/hv/hv_papazov.cpp.o CMakeFiles/pcl_recognition.dir/src/hv/hv_go.cpp.o CMakeFiles/pcl_recognition.dir/src/hv/greedy_verification.cpp.o CMakeFiles/pcl_recognition.dir/src/cg/hough_3d.cpp.o CMakeFiles/pcl_recognition.dir/src/cg/geometric_consistency.cpp.o CMakeFiles/pcl_recognition.dir/src/ransac_based/obj_rec_ransac.cpp.o CMakeFiles/pcl_recognition.dir/src/ransac_based/model_library.cpp.o CMakeFiles/pcl_recognition.dir/src/ransac_based/orr_octree.cpp.o CMakeFiles/pcl_recognition.dir/src/ransac_based/orr_octree_zprojection.cpp.o CMakeFiles/pcl_recognition.dir/src/face_detection/face_detector_data_provider.cpp.o CMakeFiles/pcl_recognition.dir/src/face_detection/rf_face_detector_trainer.cpp.o CMakeFiles/pcl_recognition.dir/src/implicit_shape_model.cpp.o -Wl,-rpath,....../pcl/build/lib:/usr/local/lib: -lm -latomic ../lib/libpcl_registration.so.1.14.0.99 ../lib/libpcl_ml.so.1.14.0.99 ../lib/libpcl_io.so.1.14.0.99 ../lib/libpcl_features.so.1.14.0.99 ../lib/libpcl_filters.so.1.14.0.99 ../lib/libpcl_search.so.1.14.0.99 ../lib/libpcl_kdtree.so.1.14.0.99 ../lib/libpcl_octree.so.1.14.0.99 /usr/local/lib/libflann_cpp.so.1.9.2 /usr/lib/x86_64-linux-gnu/liblz4.so ../lib/libpcl_sample_consensus.so.1.14.0.99 /usr/lib/libboost_iostreams.so.1.84.0 ../lib/libpcl_io_ply.so.1.14.0.99 ../lib/libpcl_common.so.1.14.0.99 /usr/lib/gcc/x86_64-linux-gnu/12/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.a -lm -latomic /usr/lib/libboost_filesystem.so.1.84.0 /usr/lib/libboost_atomic.so.1.84.0 /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libusb-1.0.so /usr/local/lib/librealsense2.so.2.54.2 /usr/local/lib/librsutils.a /usr/lib/x86_64-linux-gnu/libpcap.so
/usr/bin/ld: cannot find CMakeFiles/pcl_recognition.dir/src/hv/hv_go.cpp.o: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [recognition/CMakeFiles/pcl_recognition.dir/build.make:359: lib/libpcl_recognition.so.1.14.0.99] Error 1
make[2]: Leaving directory '....../pcl/build'
make[1]: *** [CMakeFiles/Makefile2:1610: recognition/CMakeFiles/pcl_recognition.dir/all] Error 2
make[1]: Leaving directory '....../pcl/build'
make: *** [Makefile:159: all] Error 2
It's absolutely related to METSLIB_HAVE_UNORDERED_MAP.
Your Environment (please complete the following information):
OS: Ubuntu 22.04
Compiler:
➜ ~ gcc --version
gcc (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
PCL Version : 1.14.0
PCL Type: Compiled from source
If PCL was compiled from source or failure in compiling PCL itself:
GPU, Kinfu, CUDA enabled? GPU/CUDA enabled, but Kinfu NO.
Pcl doesnt support system metslib properly. So the easiest option is to remove it and use the bundled version, which are updated to use boost versions of the random generators.
Describe the error
To Reproduce
It looks it has something to do with metslib . Even with metslib newest release, it's still buggy.
It's absolutely related to METSLIB_HAVE_UNORDERED_MAP.
Your Environment (please complete the following information):
If PCL was compiled from source or failure in compiling PCL itself: