FFmpeg 静态库编译错误汇总

文章讲述了作者在使用FFmpeg编译时遇到的arm64平台特定的链接错误,并分享了解决方案,包括禁用汇编优化和调整编译参数。

今天使用静态库编译发现 了错误 这个只有在arm64 的编译上 存在 。armeabi-v7a不存在问题

ld: error: relocation R_AARCH64_ADD_ABS_LO12_NC cannot be used against symbol 'ff_cos_16384'; recompile with -fPIC

解决方案列举汇总  有很多 大家如果有同样的问题可以一一测试。我这里只说明我的情况不一定适合每一个人

  1.  --extra-cflags="-Os -fPIC.  经过测试无效
     
  2. 修改config.mak 中   经过测试无效。 如果你细心这个文件每次执行脚本都会覆盖重新生成。所以你提前修改 执行以后还是恢复原状。除非你先执行 configure ,修改编辑后再 进行make 。但我测试还是没用
    -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
    改为 
    -D_FILE_OFFSET_BITS=64 -fPIC -D_LARGEFILE_SOURCE
  3. 增加 --extra-cflags=  no-pie 。 也无用 

  4. FFmpeg 脚本增加 --enable-pic   。 无用

  5. 脚本增加 --disable-asm   有效 

    是用来禁用汇编优化的选项。在编译过程中,
    当使用汇编优化时,生成的代码可能会包含一些特定的汇编指令,
    这些指令可能与代码的位置无关(Position-Independent Code,PIC),
    而这会导致一些链接问题。
    由于你使用了 --disable-asm,禁用了汇编优化,
    所以不会生成那些特定的汇编指令,避免了与位置无
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值