No rule to make target `/usr/lib/arm-linux-gnueabihf/libopencv_videostab.so.2.4.8'

版权声明:如需转载,请注明出处。 https://blog.csdn.net/weixin_39059031/article/details/84901122

在ubuntu14.04下安装kinect报了很多错误:主要是opencv的版本与ros之间的冲突:

报错:

make[2]: *** 没有规则可以创建“/.so”需要的目标“/usr/lib/x86_64-linux-gnu/libopencv_videostab.so.2.4.8”。 停止。

卸载cv_bridge重装:

sudo apt-get remove ros-indigo-cv-bridge

1.指定opencv版本编译

这一步不管你单纯是cmake工程或者是ros的包,都可以通过下面的办法在CMakeLists.txt中添加相应的语句来选择不同版本的OpenCV进行编译。

set(OpenCV_DIR /home/ubuntu/opencv-2.4.13.6)
find_package(OpenCV 2.4 REQUIRED)
include_directories(SYSTEM ${OpenCV_INCLUDE_DIRS} /home/ubuntu/opencv-2.4.13.6/include)
link_directories(${OpenCV_LIBRARY_DIRS} /home/ubuntu/opencv-2.4.13.6/lib)

2.cv_bridge与opencv兼容性问题

ROS kinetic中的cv_bridge中默认使用自带opencv3,而我们人脸识别程序使用的是opencv2,而需要解决cv3和cv2不兼容的问题,解决办法很简单,那就是找到/opt/ros/indigio/share/cv_bridge/cmake中的cv_bridgeConfig.cmake
 

if(NOT "include;/home/ubuntu/opencv-2.4.13.6;/home/ubuntu/opencv-2.4.13.6/include " STREQUAL " ")
  set(cv_bridge_INCLUDE_DIRS "")
  set(_include_dirs "include;/home/ubuntu/opencv-2.4.13.6;/home/ubuntu/opencv-2.4.13.6/include")

还有几个so文件路径改一下,在这里我们的路径在/usr/local/lib下,同理只要将上面的/usr/lib/x86_64-linux-gnu/路径改为自己的路径即可。

set(libraries "cv_bridge;/usr/local/lib/libopencv_videostab.so.2.4.13;/usr/local/lib/libopencv_video.so.2.4.13;/usr/local/lib/libopencv_superres.so.2.4.13;/usr/local/lib/libopencv_stitching.so.2.4.13;/usr/local/lib/libopencv_photo.so.2.4.13;/usr/local/lib/libopencv_ocl.so.2.4.13;/usr/local/lib/libopencv_objdetect.so.2.4.13;/usr/local/lib/libopencv_ml.so.2.4.13;/usr/local/lib/libopencv_legacy.so.2.4.13;/usr/local/lib/libopencv_imgproc.so.2.4.13;/usr/local/lib/libopencv_highgui.so.2.4.13;/usr/local/lib/libopencv_gpu.so.2.4.13;/usr/local/lib/libopencv_flann.so.2.4.13;/usr/local/lib/libopencv_features2d.so.2.4.13;/usr/local/lib/libopencv_core.so.2.4.13;/usr/local/lib/libopencv_contrib.so.2.4.13;/usr/local/lib/libopencv_calib3d.so.2.4.13")

此问题主要是对应目录没有相应的库,通过下面的脚本建立库的软连接。

3.建立脚本,changelib.sh

sudo ln -s /usr/local/lib/libopencv_calib3d.so /usr/lib/x86_64-linux-gnu/libopencv_calib3d.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_contrib.so /usr/lib/x86_64-linux-gnu/libopencv_contrib.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_core.so /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_detection_based_tracker.so /usr/lib/x86_64-linux-gnu/libopencv_detection_based_tracker.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_esm_panorama.so /usr/lib/x86_64-linux-gnu/libopencv_esm_panorama.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_facedetect.so /usr/lib/x86_64-linux-gnu/libopencv_facedetect.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_features2d.so /usr/lib/x86_64-linux-gnu/libopencv_features2d.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_flann.so /usr/lib/x86_64-linux-gnu/libopencv_flann.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_gpu.so /usr/lib/x86_64-linux-gnu/libopencv_gpu.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_highgui.so /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_imgproc.so /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_imuvstab.so /usr/lib/x86_64-linux-gnu/libopencv_imuvstab.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_legacy.so /usr/lib/x86_64-linux-gnu/libopencv_legacy.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_ml.so /usr/lib/x86_64-linux-gnu/libopencv_ml.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_objdetect.so /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_photo.so /usr/lib/x86_64-linux-gnu/libopencv_photo.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_stitching.so /usr/lib/x86_64-linux-gnu/libopencv_stitching.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_superres.so /usr/lib/x86_64-linux-gnu/libopencv_superres.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_tegra.so /usr/lib/x86_64-linux-gnu/libopencv_tegra.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_video.so /usr/lib/x86_64-linux-gnu/libopencv_video.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_videostab.so /usr/lib/x86_64-linux-gnu/libopencv_videostab.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_vstab.so /usr/lib/x86_64-linux-gnu/libopencv_vstab.so.2.4.8

sudo ln -s /usr/local/lib/libopencv_ts.a /usr/lib/x86_64-linux-gnu/libopencv_ts.so.2.4.8
sudo ln -s /usr/local/lib/libopencv_ocl.so.2.4.13 /usr/lib/x86_64-linux-gnu/libopencv_ocl.so.2.4.8

4.运行:sh ./changelib.sh

猜你喜欢

转载自blog.csdn.net/weixin_39059031/article/details/84901122