本文主要是介绍Linux(Deepin)Qt引用ffmpeg的问题(: error: cannot find -l...),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Linux(Deepin)Qt引用ffmpeg的问题
1、环境介绍
2、问题描述
- 从git上找了一个项目打算在Linux练习,顺便熟悉Linux和学习项目
- 项目中使用到ffmpeg库,ffmpeg项目已安装,但是Qt编译引用库的时候找不到avdevice、avformat、avcodec这些库(: error: cannot find -lavformat)
3、解决办法
1)首先确定ffmpeg已经安装。我没有单独安装,应该Deepin自带的就有,其他没有的话就需要自行安装
查看ffmpeg版本
查看是否需要更新,都没有问题就下一步
2)查看lib文件地址,看是否地址错误等情况
查看libavcodec地址:
ldconfig -p |grep libavcodec
从上图可以看出原因,库文件.so后面还有“.数字” 应该是带了版本号,导致了不能直接链接
3)找到原因就好办了,建立一个只带.so后缀的软链接就可以了
软链接类似于快捷方式
软链接命令: ln -s 链接目标地址 软链接地址
问题解决!
4、分析
1)qmake使用 -l 链接库文件,在项目编译时会去相应的lib文件夹下面找(不同系统不同,有的在/lib/,有的在/usr/lib中,反正大同小异).
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
注释该行
这篇关于Linux(Deepin)Qt引用ffmpeg的问题(: error: cannot find -l...)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!