高翔SLAM14讲中的
sudo apt-get install libpcl-dev pcl-tools
命令并不能一键安装解千愁,于是开始排坑之路。请严格按照以下安装顺序进行安装。
安装Qt5
Qt官网下载
文件名称:qt-unified-linux-x64-4.4.1-online.run
下载完成在该文件夹下终端输入:
sudo chmod u+x qt-unified-linux-x64-4.4.1-online.run
sudo ./qt-unified-linux-x64-4.4.1-online.run
在线注册账号,并下载安装。(注册后别忘了去注册邮箱确认,否则无法登陆安装)
安装X11
sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev
安装OpenGL
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev
安装glut
sudo apt-get install freeglut3-dev
安装VTK
官网下载
VTK-8.2.0.zip
#解压并进入
mkdir build && cd build
cmake ..
sudo make
sudo make install
安装clang-format
sudo apt-get install clang-format-10
安装HDF5
文件名:hdf5-1.12.2.tar.gz
HDF5官网
Attention
: 解压文件并进入后从
大神安装笔记
第“4”步开始执行
安装flann
flann1.9.1_github
Attention
: 编译过程中会报错,
大神的解决方案
#解压并进入
mkdir build && cd build
# 有些教程会在cmake后加入prefix语句,实测不用加入否则在pcl库编译时会报
# could NOT find FLANN...的错误,
# 如果按照下面的方式依旧报错,请将解压后的文件放入home文件下编译。
cmake ..
sudo make
sudo make install
安装usb1.0库
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
安装metslib
wget https://www.coin-or.org/download/source/metslib/metslib-0.5.3.tgz
tar xzvf metslib-0.5.3.tgz
cd metslib-0.5.3
./configure
make -j`nproc`
sudo make install
安装其他库
sudo apt install libqhull-dev libpcap-dev
sudo apt install libboost-all-dev
安装PCL
PCL1.9.1_github
下载
解压后放置在home文件下。
cd pcl
mkdir build
cd build
cmake ..
# attention!!!
# make -j or -j2会报compiler error,估计是分配的资源不够导致。
# make -j4会卡死崩溃。
# make -j3成功。电脑型号为:联想邵阳E49
make -j3
sudo make -j3 install
可能报的错误
1.error: could not create ‘/usr/local/lib/python2.7/…
解决方法:
sudo chown -R $USER /usr/local
2.octree_base_node.hpp:544:29: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
解决方法:
1.找到报错文件夹下的找到octree_base_node.hpp,将报错行的”children_[i] == false”改成”!children_[i]”
2.进入pcl源代码文件夹 /pcl-pcl-1.7.2/registration/include/pcl/registration/,寻找这两个文件correspondence_estimation_backprojection.h 和correspondence_estimation_normal_shooting.h,将 inline void getKSearch () const { return (k_); } 换成 inline int getKSearch () const { return (k_); }
大佬以及评论区的解答