Cent OS7 FFMPEG 编译及后续静态库连接问题

今天来记录一下Cent OS 7下编译FFMPEG的故事。

ffmpeg官方wiki:
centos 下ffmpeg编译第三方库
https://trac.ffmpeg.org/wiki/CompilationGuide/Centos

ffmpeg编译N卡硬编:
https://trac.ffmpeg.org/wiki/HWAccelIntro

如果遇到这个问题,
ERROR: cuvid requested, but not all dependencies are satisfied: ffnvcoded


将生成的.pc文件放到$HOME/ffmpeg/lib/pkgconfig文件中然后编译就好。


按照上述步骤编译出来的是FFMEPG的静态库版本,在配置环境的时候发现除了要包含ffmpeg本身的库之外还要包含编译的第三方库以及其依赖库,比如x264,x265,mp3lame等,重要的是通常会出现一下两个比较大的问题:

(一)FFMPEG 静态库链接顺序

FFMPEG 静态库的链接顺序其实在configure文件中已经告诉我们了,仔细查看会找到以下,所以我们在使用的时候按照这个顺序来添加库就好了

(二)FFMPEG静态库的依赖库

当我们编译好ffmpeg后,通过命令行测试-----没问题,开开心心准备码代码时,发现在libavxx.a有xx函数未定义的引用时,心情一下就不好了。说解决问题的方法:

1.我们从下面err提醒中可以看到未定义的引用------说明程序中缺少动态库连接。

2.从各个函数名中我们可以发现基本都是BZ2的库,那么我们试一下将BZ2添加到库依赖项中,编译,可以发现问题解决了,开心。

但是这种问题应该怎么解决,下面说一下,我们可以看到图中红线表示的时libavformat.a下出问题了,我们可以去找libavformat的编译信息看一下,去找一下libavformat.pc

我们可以看到在libavformat.pc中的libs选项中所有的连接库,其中就包含有-lbz2。那么下次就可以不用去猜了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS 7是一种基于Red Hat Enterprise Linux(RHEL)的开源操作系统,下面是一些常见的使用教程: 1. 安装CentOS 7: - 下载CentOS 7的ISO镜像文件,并将其写入USB驱动器或光盘。 - 将USB驱动器或光盘插入计算机,并启动计算机。 - 在引导时选择从USB驱动器或光盘启动。 - 按照屏幕上的提示进行安装设置,包括分区设置、网络配置和root密码等。 2. 基本命令: - 登录:使用root账户或其他具有管理员权限的账户登录。 - 更新软件包:使用以下命令更新软件包。 ``` yum update ``` - 安装软件包:使用以下命令安装软件包。 ``` yum install 软件包名称 ``` - 卸载软件包:使用以下命令卸载软件包。 ``` yum remove 软件包名称 ``` - 关闭防火墙:使用以下命令关闭防火墙。 ``` systemctl stop firewalld ``` 3. 网络配置: - 静态IP地址配置:编辑`/etc/sysconfig/network-scripts/ifcfg-eth0`文件,修改IP地址、网关、DNS等配置。 - 重启网络服务:使用以下命令重启网络服务。 ``` systemctl restart network ``` - 配置网络防火墙:使用firewalld或iptables命令配置网络防火墙规则。 4. 用户管理: - 创建用户:使用以下命令创建新用户。 ``` adduser 用户名 ``` - 设置密码:使用以下命令为用户设置密码。 ``` passwd 用户名 ``` - 授予管理员权限:将用户添加到sudo组,以授予管理员权限。 ``` usermod -aG sudo 用户名 ``` 这些是CentOS 7的一些基本使用教程,还有很多其他方面的内容可以进一步探索和学习。如果你对特定主题有更详细的问题,可以告诉我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值