OKMX6Q libx264交叉编译

本文记录了一次跨平台编译FFmpeg和x264的过程及遇到的问题解决方法。作者最初尝试使用2017年版本的x264进行编译,但遭遇了各种错误。通过尝试不同版本的x264,最终确定20081001版本可以成功完成整个编译流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最开始使用的是最新版x264-snapshot-20171119-2245
配置使用:

./configure --host=arm-linux --cross-prefix=arm-linux- --enable-shared
make
make install

编译成功了,下一步重新编译ffmpeg:

./configure --cc=arm-linux-gcc --arch=arm --disable-altivec --disable-mmx --disable-mmx2 --enable-cross-compile --prefix=arm-linux- --enable-gpl --enable-libx264 --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
make

但是configure阶段时出现ERROR:can't find libx264错误,查看日志可以发现:

undefined reference to `x264_encoder_open'

试了很多种办法都没解决,后来发现ffmpeg是2008年的版本……于是我就找了个附近版本的libx264
我使用的版本是x264-snapshot-20090101-2245
其他版本可以从这下
http://download.videolan.org/pub/videolan/x264/snapshots/

./configure --host=arm-linux --enable-shared

这个版本不支持--cross-prefix-参数,所以手动修改config.mk文件中的CC为arm-linux-gcc就可以了。
之后再编译还是不行,试过多个版本:
2010,2013和2017错误一样,都是configure阶段就不能通过
20090101,,2008和2007错误一样:XXX has no member named 'b_bidir_me'
https://ubuntuforums.org/showthread.php?t=786095&page=13
这篇帖子中说是接口问题,建议用20081001版本,用了之后编译通过。

转载于:https://www.cnblogs.com/cola-fish/p/8284310.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值