opencv库作为第三方库

在编译一个依赖opencv库的库时,报出以下错误:

undefined reference to symbol ‘_ZN2cv6imreadERKNS_6StringEi’

libopencv_core.so.2.4: error adding symbols: DSO missing from command line

error: collect2: error: ld returned 1 exit status

 

分析:

该平台装有两个opencv库,一个2.4.8版本,一个3.3.1版本,其中2.4.8的.so文件在/usr/lib/x86_64-linux-gnu目录下,在CMakeLists.txt文件里面语句FIND_PACKAGE(OpenCV REQUIRED),找到以下两个变量的路径均是默认的2.4.8的版本目录。

${OpenCV_INCLUDE_DIRS}

${OpenCV_LIBS}

如果需要依赖3.3.1的版本,则需注释掉语句FIND_PACKAGE(OpenCV REQUIRED),并添加:

SET(OpenCV_INCLUDE_DIRS /usr/local/opencv321/include)

SET(OpenCV_LIBS /usr/local/opencv321/lib)

设置依赖的opencv库的路径。

但是这种操作经常会引发上述错误。

 

解决:

在需要opencv库的地方,直接添加完整路径下的.so文件即可。

ADD_EXECUTABLE(main_pipeline src/main_pipeline.cpp)
TARGET_LINK_LIBRARIES(main_pipeline vio /usr/local/lib/libgtsam.so ${DLib_LIBS} ${DBoW2_LIBS} /usr/local/opencv321/lib/libopencv_core.so
/usr/local/opencv321/lib/libopencv_highgui.so
/usr/local/opencv321/lib/libopencv_imgcodecs.so
/usr/local/opencv321/lib/libopencv_video.so
/usr/local/opencv321/lib/libopencv_calib3d.so
/usr/local/opencv321/lib/libopencv_features2d.so
/usr/local/opencv321/lib/libopencv_flann.so)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值