描述
系统中存在多个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")
当然了,这句话一般不用添加,系统会自动去查找正确的目录