Ubuntu装软件真的麻烦,一个pcl库费了我整整两天时间!在此总结下,让大家少踩坑。
- 首先Ubuntu16.04应该是无法用3步安装法的,我试了几种网络,第二步都会失败,无法定位到package。
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-dev
遂放弃该方法,采用编译源码的方式安装。
- 源码安装
1.第一步
sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre
2.第二步
①下载源码压缩包,并放在home/username目录下,解压
git clone https://github.com/PointCloudLibrary/pcl.git
②编译安装
cd pcl-1.9
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON \ -DCMAKE_INSTALL_PREFIX=/usr ..
make
sudo make install
make的时间会很长,这个正常。
3.问题解决
cmake仔细查看cmake结果会发现一些问题,我第一遍再安装的时候没有发现,不知道是不是这些问题导致了安装失败,第二遍安装每一步都很小心,发现了这些问题,就将其一一解决了。
如图中,会发现Could Not find PCAP (missing: PCAP_LIBRARIES PCAP_INCLUDE_DIRS),
Could NOT find GLEW (missing: GLEW_INCLUDE_DIR GLEW_LIBRARY)
第一条解决办法便是安装libpcap
下载pcaphttp://www.tcpdump.org/#latest-release
然后
tar -zxvf libpcap-1.9.0.tar.gz
cd libpcap-1.9.0
sudo ./configure
sudo make
sudo make install
如果出现 make: *** 没有指明目标并且找不到 makefile。 停止。
参考 https://blog.csdn.net/blueheart20/article/details/53073973
和 https://blog.csdn.net/asia66/article/details/85703643 解决。
第二条解决办法是
sudo apt-get install libglew-dev
我是将build中的文件全部删除重新cmake的。
网上有一些方法需要删除原来库文件等等,我只想说,谨慎使用rm 。第一遍安装时,我也不知道是自己删除了头文件、库文件的原因还是别的原因,cmake之后就再也找不到/usr/share 中的pcl相关文件了。
4.最后
安装完毕后没有报错,cmake make 后C++文件还是找不到头文件的话,可以尝试讲CMakelists.txt中的路径改为绝对路径。
参考:http://blog.csdn.net/unlimitedai/details/86481912
PS:第二遍装是在重装系统后安装成功的。