opencv使用cmake链接库函数出现usrbinld: cannot find -lopencv

    xiaoxiao2021-04-18  71

    由于安装了很多版本的opencv,希望通过cmake指定链接特定版本的opencv库。 由于我安装的opencv-3.1.0不是在系统默认的目录usr/lib中 CMakeLists.txt 如下

    cmake_minimum_required(VERSION 2.8.3) project(rosopencv) ADD_EXECUTABLE(rosopencv rosopencv.cpp) INCLUDE_DIRECTORIES(/home/topeet/programFiles/opencv-3.1.0/include) INCLUDE_DIRECTORIES(/home/topeet/programFiles/opencv-3.1.0/include/opencv) INCLUDE_DIRECTORIES(/home/topeet/programFiles/opencv-3.1.0/include/opencv2) LINK_DIRECTORIES(/home/topeet/programFiles/opencv-3.1.0/lib) SET(CMAKE_LIBRARY_PATH /home/topeet/programFiles/opencv-3.1.0/lib) TARGET_LINK_LIBRARIES(rosopencv libopencv_calib3d.so libopencv_core.so libopencv_features2d.so libopencv_flann.so libopencv_highgui.so libopencv_imgcodecs.so libopencv_imgproc.so libopencv_ml.so libopencv_objdetect.so libopencv_photo.so libopencv_shape.so libopencv_videoio.so libopencv_video.so libopencv_videostab.so)

    编辑文件 vi /etc/ld.so.conf.d/libc.conf 在文件的末尾加入要调用的动态链接库的路径 /home/topeet/programFiles/opencv-3.1.0/lib 运行ldconfig

    在控制台直接使用g++命令能够链接上 但是使用 cmake. make

    总是出现 /usr/bin/ld: cannot find -lopencv_calib3d /usr/bin/ld: cannot find -lopencv_core /usr/bin/ld: cannot find -lopencv_features2d

    终极解决方案!! 直接将自定义安装的所有opencv动态链接库文件拷贝到use/lib文件夹下!! 再执行ldconfig

    cmake. make 就能成功了。

    沧海飞帆 认证博客专家 火星工程师 热爱多传感器融合slam、机器人、人工智能相关技术。立志于让机器人更智能,为人类移民火星做铺垫。让科技使生活更幸福,让科技改变世界。
    转载请注明原文地址: https://ju.6miu.com/read-675660.html

    最新回复(0)