背景
在跑最新官方教程的代码时存在一些数据结构的缺失,这是由于我目前使用的PCL版本低,需要从源码安装PCL。
卸载方法
从apt安装的卸载方法
sudo apt remove libpcl
sudo rm /usr/lib/x86_64-linux-gnu/libpcl_* # 删除残留的so文件
sudo rm -r /usr/share/doc/libpcl-* # 删除pcl文档
从源码安装的卸载方法
sudo rm -r /usr/include/pcl-1.10 /usr/share/pcl /usr/bin/pcl* /usr/lib/libpcl* /usr/lib/x86_64-linux-gnu/libpcl_*
sudo rm -r /usr/share/doc/libpcl-* # 删除pcl文档
从源码安装时未指定安装目录的卸载方法
如果从源码安装时未指定安装目录,pcl可能被安装到/usr/local/
下的某层文件夹,这样可能导致pcl程序编译时找不到库文件,因为一般都是安装到/usr/
文件夹下。
具体来说是由于这条命令导致的:
cmake -DCMAKE_BUILD_TYPE=Release .. # 参数含义是以发布形式编译,而不是默认以Debug模式编译,但没有加安装路经参数
进入安装时的编译目录build
下,有个install_manifest.txt
文件,里面包含了各个文件安装的目录,执行卸载命令:
sudo make uninstall
安装方法
以PCL-1.12.1为例。
参考链接:Compiling PCL from source on POSIX compliant systems
下载源码:Github Releases
sudo apt-get install libusb-1.0-0-dev # 可能会缺少这个依赖
# 右键解压压缩包
cd pcl-pcl-1.12.1 && 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 -j8 # 我的CPU有8个线程,这里全部用上以加速编译
sudo make install
cd build/lib/
sudo cp -d libpcl_* /usr/lib/x86_64-linux-gnu/ # 将这些so文件复制到之前清理过的这个目录,否则编译自己的程序时找不到so文件,-d参数是保持文件之间的软链接关系