ld 链接器找不到 so 库

ld 链接器找不到 so 库

一、问题描述

使用RK1808计算棒开发过程中,编译 demo 程序时遇到报错:

ld 链接器找不到 opencv_imgcodecs 和 opencv_videoio 这两个动态库,导致编译失败

ld 链接器找不到 so 库

二、问题思考

编译提示缺少这两个库,那我们先找一下我们安装的 opencv 库

pkg-config opencv --libs

结果如下:

ld 链接器找不到 so 库

然后和 cmake 文件进行对比

ld 链接器找不到 so 库

报错的两个动态库确实没用,可能的原因是 opevcv 的版本不对,不支持编译 cmake 语句文件的那两个报错的动态库

三、解决方式

解决方法想到有两个:

  • 更换 opencv 版本,安装支持这两个库的版本
  • 目前版本的动态库应该也对其支持,可以换一个动态库试试

我先试试第二种方法,opencv_videoio 是用来读取视频和摄像头,换成 opencv_video,opencv_imgcodecs 图片编码,换成 opencv_photo,重新编译

ld 链接器找不到 so 库

编译成功,程序执行也没问题,这个方法不是很完美,这个肯定是版本原因,具体要搜索各个版本间的特性,换版本编译

上一篇:第一章 OpenCV介绍


下一篇:分类任务交叉熵与softmax函数