ffmpeg 静态库链接到动态库的问题

在尝试将ffmpeg静态库与动态库链接时,遇到错误提示。问题源于头文件中定义的变量未在相应段中找到。通过检查编译选项和汇编代码,发现缺少.rela.dyn段。移除编译选项后,添加了该段,但问题仍未解决,因为存在.plt.got.rela类型的重定位信息。通过加入-Wl,--no-undefined选项解决了可重定位问题。在64位环境中,MANGLE宏可能导致变量重定位信息改变,需要进一步调查相关汇编代码。" 113221050,10544354,MySQL数据库基础与实践教程,"['数据库管理', 'MySQL教程', 'SQL语言', '数据库设计', '数据查询']

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

首先编译好 ffmpeg 静态库,在libsav链接时提示

/usr/bin/ld: /opt/data/data/work/source/library/libSAV/../../public/lib/ffmpeg-94a52417/x64/lib/libavcodec.a(h264.o): relocation R_X86_64_PC32 against symbol `ff_h264_cabac_tables' can not be used when making a shared object; recompile with -fPIC

但是经查询,其实 ffmpeg编译时是加了-fPIC选项的。继续查找
libavcodec/h264.c文件中引用了头文件libavcodec/cabac_functions.h,头文件中定义了如下字段

extern uint8_t ff_h264_cabac_tables[512 + 4*2*6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值