PCL多版本引起编译错误

当系统中存在多个PCL版本时,编译可能会遇到找不到正确库的错误。通过在CMakeList中指定PCL版本并链接库路径可以解决此问题。例如,使用`find_package(PCL 1.12 REQUIRED)`,然后添加`link_directories(${PCL_LIBRARY_DIRS}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述

系统中存在多个PCL版本时,编译时针对某个模块,编译器可能不知道寻找哪个版本的库,导致出现依赖问题

报错

我的CMakeList中

find_package(PCL 1.7 REQUIRED)

编译报错

/usr/bin/ld: warning: libpcl_io.so.1.12, needed by /usr/local/lib/libpcl_visualization.so, may conflict with libpcl_io.so.1.10
/usr/bin/ld: warning: libpcl_common.so.1.12, needed by /usr/local/lib/libpcl_visualization.so, may conflict with libpcl_common.so.1.10

解决方案

我的电脑里有多个版本的pcl,ROS装的是1.7,我自己好像单独装过1.10和1.12,记不清了。

指定一下PCL的版本,并连接一下PCL库的路径

find_package(PCL 1.12 REQUIRED)

link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

另外你还可以选择一下PCL的查找目录

# set(PCL_DIR "/usr/lib/x86_64-linux-gnu/cmake/pcl")

当然了,这句话一般不用添加,系统会自动去查找正确的目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值