卸载自编译PCL-1.12后,如何让编译系统不再依赖/usr/local/lib?
解决方法
1. 清理PCL 1.12残留的CMake配置文件
自编译安装的PCL会在系统目录留下未被make uninstall清理干净的配置文件,这是CMake仍指向旧路径的核心原因,执行以下命令删除残留:
sudo rm -rf /usr/local/lib/cmake/PCL* sudo rm -rf /usr/local/share/pcl-1.12
2. 强制CMake优先使用系统APT安装的PCL 1.10
在colcon编译时通过参数指定正确的PCL配置路径,或者调整库搜索优先级:
- 方法一:直接指定PCL 1.10的CMake配置目录:
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release -DPCL_DIR=/usr/lib/x86_64-linux-gnu/cmake/PCL-1.10
- 方法二:调整CMake的前缀路径优先级,让系统库目录优先于
/usr/local/lib:
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="/usr/lib/x86_64-linux-gnu:$CMAKE_PREFIX_PATH"
3. 清理colcon编译缓存
之前的编译缓存可能保留了旧的PCL路径信息,先清理再重新编译:
rm -rf build/ install/ log/
4. 验证路径是否生效
执行以下命令确认系统识别的PCL版本和路径:
pkg-config --modversion pcl_common pkg-config --variable=libdir pcl_common
若输出为1.10和/usr/lib/x86_64-linux-gnu,说明路径已正确指向系统安装的PCL版本。
内容的提问来源于stack exchange,提问作者yo930039
相关产品推荐
相关产品推荐

