ffmpeg中examples编译报不兼容错误解决办法

ffmpeg中examples编译报不兼容错误解决办法

参考examples下的README可知,编译之前需要设置 PKG_CONFIG_PATH路径。

bash 复制代码
export PKG_CONFIG_PATH=/home/user/work/ffmpeg/ffmpeg/_install_uclibc/lib/pkgconfig

之后执行make出现如下错误:

基本都是由于库的版本和编译时候的二进制.o文件位数不匹配造成的。

可以使用命令查看.so和examples中.o文件详情:

bash 复制代码
user:~/work/ffmpeg/ffmpeg/_install_uclibc/share/ffmpeg/examples$ file -L /home/user/work/ffmpeg/ffmpeg/_install_uclibc/lib/libavdevice.so
/home/user/work/ffmpeg/ffmpeg/_install_uclibc/lib/libavdevice.so: ELF 32-bit LSB shared object, MIPS, MIPS32 rel2 version 1 (SYSV), dynamically linked, stripped
user:~/work/ffmpeg/ffmpeg/_install_uclibc/share/ffmpeg/examples$ file avio_dir_cmd.o
avio_dir_cmd.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped

其中动态库是32位mips编译的,而程序二进制是x86-64下的。

解决办法:

设置CC和CXX编译工具链即可。

例如:

bash 复制代码
export CC=XXXXXXXX
export CXX=xxxxxxxxxxxx

与动态库的保持一致就可以了。

bash 复制代码
user:~/work/ffmpeg/ffmpeg/_install_uclibc/share/ffmpeg/examples$ ls
avio_dir_cmd    decode_audio    demuxing_decoding    encode_video    filter_audio.c     filtering_video.o   hw_decode.o  muxing.c    remuxing.o          scaling_video.o  transcoding.o
avio_dir_cmd.c  decode_audio.c  demuxing_decoding.c  encode_video.c  filtering_audio    http_multiclient    Makefile     muxing.o    resampling_audio    transcode_aac    vaapi_encode.c
avio_dir_cmd.o  decode_audio.o  demuxing_decoding.o  encode_video.o  filtering_audio.c  http_multiclient.c  metadata     qsvdec.c    resampling_audio.c  transcode_aac.c  vaapi_transcode.c
avio_reading    decode_video    encode_audio         extract_mvs     filtering_audio.o  http_multiclient.o  metadata.c   README      resampling_audio.o  transcode_aac.o
avio_reading.c  decode_video.c  encode_audio.c       extract_mvs.c   filtering_video    hw_decode           metadata.o   remuxing    scaling_video       transcoding
avio_reading.o  decode_video.o  encode_audio.o       extract_mvs.o   filtering_video.c  hw_decode.c         muxing       remuxing.c  scaling_video.c     transcoding.c

有说错的或者需要补充的欢迎大家留言。

相关推荐
小成202303202653 小时前
Linux高级02
linux·开发语言
mounter6253 小时前
【硬核前沿】CXL 深度解析:重塑数据中心架构的“高速公路”,Linux 内核如何应对挑战?-- CXL 协议详解与 LSF/MM 最新动态
linux·服务器·网络·架构·kernel
钢琴上的汽车软件3 小时前
C 语言中const与指针:三种常见写法辨析
c语言·指针和const
++==3 小时前
Linux 进程间通信与线程同步技术详解:IPC 机制、线程 API、同步工具与经典同步问题
linux
ZK_H3 小时前
嵌入式c语言——关键字其6
c语言·开发语言·计算机网络·面试·职场和发展
特长腿特长3 小时前
centos、ubantu系列机的用户和用户组的结构是什么?具体怎么配置?用户组权限怎么使用?这篇文章持续更新,帮助你复习linux的基础知识
linux·运维·centos
澈2073 小时前
深入浅出C++滑动窗口算法:原理、实现与实战应用详解
数据结构·c++·算法
A.A呐3 小时前
【C++第二十九章】IO流
开发语言·c++
zzzyyy5384 小时前
Linux环境变量
linux·运维·服务器
ambition202424 小时前
从暴力搜索到理论最优:一道任务调度问题的完整算法演进历程
c语言·数据结构·c++·算法·贪心算法·深度优先