Ubuntu 编译 opvencv 出错的解决方案

1 问题描述

在Ubuntu下 Qt 中使用OpenCV需要在官方 GitHub 下载源码后在本地使用 CMake 进行编译。我在使用cmake进行编译时出现了以下错误:

[ 36%] Built target opencv_ts
[ 36%] Linking CXX executable ../../bin/opencv_test_core
/usr/bin/ld: warning: libpcre.so.1, needed by //home/jk/anaconda3/lib/libglib-2.0.so.0, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libzstd.so.1.3.7, needed by //home/jk/anaconda3/lib/libtiff.so.5, not found (try using -rpath or -rpath-link)

根据报错可知是编译时想要使用anaconda3/lib/的文件却不可用。

2 解决方案

anaconda3/目录中的文件删除并替换成/lib/x86_64-linux-gnu/路径下文件的链接。
具体操作如下:

  1. 使用locate命令找到该文件的位置
locate libxxxx.xxx.so.x

对于我来说就是:

locate libglib-2.0.so.0

然后可以看到一系列的路径:

/home/jk/anaconda3/lib/libglib-2.0.so.0
/home/jk/anaconda3/lib/libglib-2.0.so.0.6301.0
/home/jk/anaconda3/pkgs/glib-2.63.1-h5a9c865_0/lib/libglib-2.0.so.0
/home/jk/anaconda3/pkgs/glib-2.63.1-h5a9c865_0/lib/libglib-2.0.so.0.6301.0
/lib/x86_64-linux-gnu/libglib-2.0.so.0
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2
/snap/core/9804/lib/x86_64-linux-gnu/libglib-2.0.so.0
/snap/core/9804/lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2
/snap/core/9993/lib/x86_64-linux-gnu/libglib-2.0.so.0
/snap/core/9993/lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2
/snap/core18/1880/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
/snap/core18/1880/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.5600.4
/snap/core18/1885/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
/snap/core18/1885/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.5600.4
/snap/vlc/1700/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
/snap/vlc/1700/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.5600.4

找到其中包含/anaconda3/lib//lib/x86_64-linux-gnu/的路径。

  1. 移除anaconda中原有文件
    上面我们已经知道了文件在anaconda中的路径,使用rm进行移除:
sudo rm /home/jk/anaconda3/lib/locate libxxxx.xxx.so.x

接着我上面的例子,我的命令就是

sudo rm /home/jk/anaconda3/lib/libglib-2.0.so.0
  1. 使用ln命令生成新的连接文件
sudo ln -s /lib/x86_64-linux-gnu/libxxxx.xxx.so.x /home/jk/anaconda3/lib/libxxxx.xxx.so.x

对于我的例子就是:

sudo ln -s /lib/x86_64-linux-gnu/libglib-2.0.so.0 /home/jk/anaconda3/lib/libglib-2.0.so.0

然后再次使用sudo make命令就不会报这个错误了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值