编译ros_astra_camera 出现找不到libucv问题,已经解决

编译ros_astra_camera 包的时候会出现一大段报错问题,这样的一堆…

 [ 98%] Built target astra_camera_node
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::~CameraDriver()':
camera_driver.cpp:(.text+0xcb4): undefined reference to `uvc_free_frame'
/usr/bin/ld: camera_driver.cpp:(.text+0xcd4): undefined reference to `uvc_exi

看一下就是找不到库的问题,解决这个问题的方法是修改ros_astra_camera的CmakeList.txt文件。(入行小白一开始很头大,因为不熟悉Cmake语法,后来看了几天之后凭感觉学会了,我真是个天才,哈哈飘了)咳咳,直接关注问题本身。

Cmakelist中的添加libuvc是通过find_package(libuvc REQUIRED) 寻找库的,但是新安装的libuvc 0.0.6 没有生成 libuvc.cmake文件(不知道原因),所以编译时libuvc_INCLUDE_DIRS、libuvc_LIBRARIES 都是空的!!! 所以编译才找不到对应的库!
解决办法:在ros_astra_camera的CmakeList.txt文件的find_package(libuvc REQUIRED)下方添加两条语句(根据你libuvc安装的地址修改),编译就OK了
set(libuvc_INCLUDE_DIRS “/usr/local/include/libuvc”)
set(libuvc_LIBRARIES “/usr/local/lib/libuvc.so”)

find_package(libuvc REQUIRED) #原因是libuvc库存在问题,没有libuvc.cmake文件,find_package()无法找到libuvc库文件
#解决办法手动添加库文件位置
set(libuvc_INCLUDE_DIRS "/usr/local/include/libuvc")
set(libuvc_LIBRARIES "/usr/local/lib/libuvc.so")

解决此问题后还有一个无法看在 rviz 中看到 RGB图像的问题,参考这位小哥的博客他找到了bug并解决了(官方驱动包有问题)
https://blog.csdn.net/Numberors/article/details/105637209

你可能感兴趣的:(编译ros_astra_camera 出现找不到libucv问题,已经解决)