libjsk_recognition_utils.so to ‘pcl::search::KdTree<pcl::PointNormal>::KdTree(bool)’ undefined reference
Hi, My system is: ubuntu14.04, indigo, autoware-1.9.1, pcl-1.7, gcc-4.8.5, g++-4.8.5, kernel: 4.4.0-146-generic.
Following autoware install wiki, when build with AUTOWARE_COMPILE_WITH_CUDA=1 ./catkin_make_release
, occured this error:
/opt/ros/indigo/lib/libjsk_recognition_utils.so:对‘pcl::search::KdTree<pcl::PointNormal>::KdTree(bool)’undefined reference
/opt/ros/indigo/lib/libjsk_recognition_utils.so:对‘pcl::search::KdTree<pcl::PointXYZ>::KdTree(bool)’undefined reference
collect2: error: ld returned 1 exit status
make[2]:[/home/jxl/third_softwares/autoware/ros/devel/lib/range_vision_fusion/range_vision_fusion] error 1
make[1]:[computing/perception/detection/fusion_tools/packages/range_vision_fusion/CMakeFiles/range_vision_fusion.dir/all] error 2
How to fixed this pcl error, any help is appreciated much!
Asked by jxl on 2019-06-25 08:19:53 UTC
Answers
Make sure you are on version 1.9.1
$ git log
commit 3ede921f56ee4f155731ae2125a75ab57f08f4ab
Author: Kenji Funaoka <kfunaoka@gmail.com>
Date: Tue Nov 6 11:20:36 2018 +0900
1.9.1
If you are not:
$ cd ~/Autoware/
$ git checkout 1.9.1
Be sure to have the submodules
$ git submodule update --init --recursive
Update your OS packages
$ sudo apt-get update
Update ROS packages, it' very important to add --include-eol-distros
.
$ rosdep update --include-eol-distros
Install dependencies:
$ cd ~/Autoware/ros
$ rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
$ ./catkin_make_release
Tested on a clean Docker ros:indigo-perception
PCL version 1.7.1-3 gcc-version 4.8.4
ii ros-indigo-perception 1.1.6-0trusty-20190604-152659-0800 amd64 A metapackage to aggregate several packages.
ii ros-indigo-perception-pcl 1.2.9-0trusty-20190604-133322-0800 amd64 PCL (Point Cloud Library) ROS interface stack.
Asked by amc-nu on 2019-06-26 02:56:31 UTC
Comments
Thanks amc-nu very much! According to Geoff‘s suggestion, i have reinsalled my OS to ubuntu16.04.6, and kinetic. Now i am trying to build autoware-1.11.1, so can not verify whether the solution works or not currently, maybe someone else can test this solution :)
Asked by jxl on 2019-06-26 22:48:19 UTC
Comments
Just out of curiosity, is there a reason you have to use Ubuntu 14.04 (EOL'd) and ROS Indigo (EOL'd)?
Asked by Geoff on 2019-06-25 19:15:15 UTC
Hello, author! Yes, the computer which install indigo has been used for a long time, there is a lot of information :(. BTW, If on kinetic, what version of autoware you suggest to try, 1.11.0, 1.12.0-alpha.1, 1.11.1, or 1.12.0-alpha.2 ? Thanks much!
Asked by jxl on 2019-06-25 20:49:21 UTC
On Kinetic, I recommend using 1.11.1 until 1.12 is released.
You can upgrade the computer to a more recent version of Ubuntu without losing information, but the further back you go the harder it gets and the greater the chance of problems. You may need to incrementally upgrade, such as moving first to 15.04, then 16.04, then 17.04, then 18.04.
When you set up a computer with Linux, it is good practice to make the
/home
directory a separate partition (or subvolume if you are usingbtrfs
), because it makes it comparatively easy to completely reinstall the software from scratch without losing all the information stored in the home directories.Asked by Geoff on 2019-06-25 23:33:15 UTC