Ubuntu系统下升级PCL至1.12.1版本以修复QHull相关问题的方法咨询
解决Ubuntu上升级PCL到1.12.1并匹配指定Qhull版本的问题
你的情况其实很典型——Ubuntu官方源里的PCL版本通常滞后,要用到特定修复的版本,手动编译确实是最可靠的方案,而且只要步骤正确,完全可以顺利完成。下面给你两种可行的解决思路,按优先级推荐:
方案1:尝试第三方PPA源(最简便)
有些社区维护的PPA会提供更新版本的PCL,你可以先尝试这种方式,省去手动编译的麻烦:
- 首先搜索适配你Ubuntu版本的PCL 1.12.x PPA(比如针对Ubuntu 20.04/22.04的PPA)
- 添加PPA并更新源:
sudo add-apt-repository ppa:<找到的PPA地址> sudo apt update - 安装最新版本的PCL:
sudo apt install libpcl-dev - 验证版本:
pkg-config --modversion pcl_common
如果能找到合适的PPA,这是最快的解决方式,但如果找不到适配的,就需要用手动编译的方案。
方案2:手动编译指定版本的PCL与Qhull(最可靠,精准控制版本)
这种方式可以完全按照你的需求,安装PCL 1.12.1以及对应的特定Qhull版本,步骤如下:
1. 卸载原有PCL(避免版本冲突)
先把通过apt安装的旧版本PCL彻底移除:
sudo apt remove --purge libpcl-dev sudo apt autoremove sudo apt clean
2. 安装编译基础依赖
PCL编译需要一系列依赖,先安装常用的基础包:
sudo apt install build-essential cmake libboost-all-dev libeigen3-dev libflann-dev libvtk7-dev libopenni2-dev libusb-1.0-0-dev
注:如果你的Ubuntu版本不同,VTK的版本可能需要调整(比如Ubuntu 22.04用libvtk9-dev)。
3. 编译安装指定版本的Qhull
根据你提到的修复提交对应的Qhull版本,手动编译安装:
- 克隆Qhull仓库并切换到指定版本:
git clone https://github.com/qhull/qhull.git cd qhull git checkout <你需要的Qhull版本tag> - 创建编译目录并安装:
mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. make -j$(nproc) # 用全部CPU核心加速编译,内存不足可改成-j4 sudo make install sudo ldconfig # 更新系统库缓存
4. 编译安装PCL 1.12.1
- 克隆PCL仓库并切换到1.12.1标签:
git clone https://github.com/PointCloudLibrary/pcl.git cd pcl git checkout pcl-1.12.1 - 创建编译目录并配置CMake(确保指定我们刚装的Qhull):
注:如果CMake能自动找到你装的Qhull,也可以省略后面的Qhull路径参数。mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release -DQHULL_INCLUDE_DIR=/usr/local/include/qhull -DQHULL_LIBRARY=/usr/local/lib/libqhull.so .. - 编译并安装:
make -j$(nproc) sudo make install sudo ldconfig
5. 验证安装成功
- 查看PCL版本:
输出应该是pkg-config --modversion pcl_common1.12.1。 - 编写一个简单的测试程序,调用QHull相关功能,确认问题已修复。
注意事项
- 编译时如果遇到内存不足的问题,减少
make -j后面的数字(比如改成-j2)。 - 后续自己的项目编译时,在CMakeLists.txt里明确指定PCL版本:
确保链接到新安装的版本。find_package(PCL 1.12 REQUIRED)
内容的提问来源于stack exchange,提问作者mathislm
相关产品推荐
相关产品推荐

