ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux(Deepin)Qt引用ffmpeg的问题(: error: cannot find -l...)

2022-02-22 17:06:08  阅读:257  来源: 互联网

标签:... Qt lib Deepin so error 链接 ffmpeg


Linux(Deepin)Qt引用ffmpeg的问题

1、环境介绍

  • Deepin 20.4
  • Qt 5.15.1

2、问题描述

  • 从git上找了一个项目打算在Linux练习,顺便熟悉Linux和学习项目
  • 项目中使用到ffmpeg库,ffmpeg项目已安装,但是Qt编译引用库的时候找不到avdevice、avformat、avcodec这些库(: error: cannot find -lavformat)

image

3、解决办法

1)首先确定ffmpeg已经安装。我没有单独安装,应该Deepin自带的就有,其他没有的话就需要自行安装

查看ffmpeg版本
image

查看是否需要更新,都没有问题就下一步
image

2)查看lib文件地址,看是否地址错误等情况

查看libavcodec地址:
ldconfig -p |grep libavcodec
image

从上图可以看出原因,库文件.so后面还有“.数字” 应该是带了版本号,导致了不能直接链接

3)找到原因就好办了,建立一个只带.so后缀的软链接就可以了

软链接类似于快捷方式
软链接命令: ln -s 链接目标地址 软链接地址
image

问题解决!

4、分析

image

1)qmake使用 -l 链接库文件,在项目编译时会去相应的lib文件夹下面找(不同系统不同,有的在/lib/,有的在/usr/lib中,反正大同小异).

2)根据相应的名字就会自动去找相对应的.so动态库文件,例如 -lavformat 就会去找libavformat.so文件

5、小插曲

  • 1、直接使用apt安装g++,g++的版本不符合当前Qt对g++的要求,需要自己下载源码编译安装
  • 2、当前版本Deepin屏蔽了Qt的qDebug输出,需要修改 /etc/X11/Xsession.d/00deepin-dde-env 文件

打开该文件进行编辑,需要root权限

sudo vim /etc/X11/Xsession.d/00deepin-dde-env

image

注释该行
image

标签:...,Qt,lib,Deepin,so,error,链接,ffmpeg
来源: https://www.cnblogs.com/lqlqxiong/p/15923940.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有