移ffmpeg到axera平台时遇到的错误

错误信息记录:

CC    libavfilter/vf_mestimate.o
/tmp/ccqhZ2YH.s: Assembler messages:
/tmp/ccqhZ2YH.s:781: Error: unknown mnemonic `itt' -- `itt gt'
/tmp/ccqhZ2YH.s:782: Error: unknown mnemonic `movgt' -- `movgt x12,x1'
/tmp/ccqhZ2YH.s:783: Error: unknown mnemonic `movgt' -- `movgt x1,x3'
/tmp/ccqhZ2YH.s:785: Error: unknown mnemonic `it' -- `it le'
/tmp/ccqhZ2YH.s:786: Error: unknown mnemonic `movle' -- `movle x1,x11'
/tmp/ccqhZ2YH.s:788: Error: unknown mnemonic `it' -- `it gt'
/tmp/ccqhZ2YH.s:789: Error: unknown mnemonic `movgt' -- `movgt x12,x1'
/tmp/ccqhZ2YH.s:798: Error: unknown mnemonic `itt' -- `itt gt'
/tmp/ccqhZ2YH.s:799: Error: unknown mnemonic `movgt' -- `movgt x3,x0'
/tmp/ccqhZ2YH.s:800: Error: unknown mnemonic `movgt' -- `movgt x0,x2'
/tmp/ccqhZ2YH.s:802: Error: unknown mnemonic `it' -- `it le'
/tmp/ccqhZ2YH.s:803: Error: unknown mnemonic `movle' -- `movle x0,x1'
/tmp/ccqhZ2YH.s:805: Error: unknown mnemonic `it' -- `it gt'
/tmp/ccqhZ2YH.s:806: Error: unknown mnemonic `movgt' -- `movgt x3,x0'
/tmp/ccqhZ2YH.s:895: Error: unknown mnemonic `itt' -- `itt gt'
/tmp/ccqhZ2YH.s:896: Error: unknown mnemonic `movgt' -- `movgt x13,x1'
/tmp/ccqhZ2YH.s:897: Error: unknown mnemonic `movgt' -- `movgt x1,x11'
/tmp/ccqhZ2YH.s:899: Error: unknown mnemonic `it' -- `it le'
/tmp/ccqhZ2YH.s:900: Error: unknown mnemonic `movle' -- `movle x1,x12'
/tmp/ccqhZ2YH.s:902: Error: unknown mnemonic `it' -- `it gt'
/tmp/ccqhZ2YH.s:903: Error: unknown mnemonic `movgt' -- `movgt x13,x1'
/tmp/ccqhZ2YH.s:909: Error: unknown mnemonic `itt' -- `itt gt'
/tmp/ccqhZ2YH.s:910: Error: unknown mnemonic `movgt' -- `movgt x1,x0'
/tmp/ccqhZ2YH.s:911: Error: unknown mnemonic `movgt' -- `movgt x0,x2'
/tmp/ccqhZ2YH.s:913: Error: unknown mnemonic `it' -- `it le'
/tmp/ccqhZ2YH.s:914: Error: unknown mnemonic `movle' -- `movle x0,x3'
/tmp/ccqhZ2YH.s:916: Error: unknown mnemonic `it' -- `it gt'
/tmp/ccqhZ2YH.s:917: Error: unknown mnemonic `movgt' -- `movgt x1,x0'
/tmp/ccqhZ2YH.s:1199: Error: unknown mnemonic `itt' -- `itt gt'
/tmp/ccqhZ2YH.s:1200: Error: unknown mnemonic `movgt' -- `movgt x15,x3'
/tmp/ccqhZ2YH.s:1201: Error: unknown mnemonic `movgt' -- `movgt x3,x12'
/tmp/ccqhZ2YH.s:1203: Error: unknown mnemonic `it' -- `it le'
/tmp/ccqhZ2YH.s:1204: Error: unknown mnemonic `movle' -- `movle x3,x14'
/tmp/ccqhZ2YH.s:1206: Error: unknown mnemonic `it' -- `it gt'
/tmp/ccqhZ2YH.s:1207: Error: unknown mnemonic `movgt' -- `movgt x15,x3'
/tmp/ccqhZ2YH.s:1216: Error: unknown mnemonic `itt' -- `itt gt'
/tmp/ccqhZ2YH.s:1217: Error: unknown mnemonic `movgt' -- `movgt x12,x1'
/tmp/ccqhZ2YH.s:1218: Error: unknown mnemonic `movgt' -- `movgt x1,x4'
/tmp/ccqhZ2YH.s:1220: Error: unknown mnemonic `it' -- `it le'
/tmp/ccqhZ2YH.s:1221: Error: unknown mnemonic `movle' -- `movle x1,x3'
/tmp/ccqhZ2YH.s:1223: Error: unknown mnemonic `it' -- `it gt'
/tmp/ccqhZ2YH.s:1224: Error: unknown mnemonic `movgt' -- `movgt x12,x1'
/tmp/ccqhZ2YH.s:1240: Error: unknown mnemonic `itt' -- `itt gt'
/tmp/ccqhZ2YH.s:1241: Error: unknown mnemonic `movgt' -- `movgt x16,x3'
/tmp/ccqhZ2YH.s:1242: Error: unknown mnemonic `movgt' -- `movgt x3,x14'
/tmp/ccqhZ2YH.s:1244: Error: unknown mnemonic `it' -- `it le'
/tmp/ccqhZ2YH.s:1245: Error: unknown mnemonic `movle' -- `movle x3,x15'
/tmp/ccqhZ2YH.s:1247: Error: unknown mnemonic `it' -- `it gt'
/tmp/ccqhZ2YH.s:1248: Error: unknown mnemonic `movgt' -- `movgt x16,x3'
/tmp/ccqhZ2YH.s:1254: Error: unknown mnemonic `itt' -- `itt gt'
/tmp/ccqhZ2YH.s:1255: Error: unknown mnemonic `movgt' -- `movgt x3,x1'
/tmp/ccqhZ2YH.s:1256: Error: unknown mnemonic `movgt' -- `movgt x1,x4'
/tmp/ccqhZ2YH.s:1258: Error: unknown mnemonic `it' -- `it le'
/tmp/ccqhZ2YH.s:1259: Error: unknown mnemonic `movle' -- `movle x1,x12'
/tmp/ccqhZ2YH.s:1261: Error: unknown mnemonic `it' -- `it gt'
/tmp/ccqhZ2YH.s:1262: Error: unknown mnemonic `movgt' -- `movgt x3,x1'
ffbuild/common.mak:78: recipe for target 'libavfilter/vf_mestimate.o' failed
make: *** [libavfilter/vf_mestimate.o] Error 1
 

上面错误明显时指令集不匹配导致。

问题是做620平台时,编译没有问题。为什么做630平台就出错了呢?这两者间的区别就是在编译器上。

在620上用 ./configure --prefix=/home/${HOME}/arm_soft_dest/ffmpeg --disable-static --enable-shared --disable-debug --disable-ffplay --disable-ffprobe --enable-parser=h264 --enable-cross-compile --arch=arm --target-os=linux --cross-prefix=arm-linux-gnueabihf-

换成630的编译器  --cross-prefix=aarch64-linux-gnu-  后出现错误。

在网上查了一下资料,有下面一段文字描述:

aarch64 是 ARMv8-A 架构中引入的64位指令集,AArch64 向后兼容基于32位指令集的 ARMv7-A 和之前别的一些 32 位 ARM 架构(也就是AArch32)。

因此,64ISA的 GNU 三元组是 aarch64

历史中,Linux 内核社区选择arm64作为内核的端口调用,而不是aarch64,这就导致遗留了一些 arm64 的用法。同样的,Apple后端团队也称aarch64arm64

目前,LLVM 社区后端称为aarch64(因为它是64位ISA的规范名称),后来两者合并,后端现在统一称为aarch64 。

所以aarch64arm64指的是同一个东西

所以,将configure 修改一下,编译就通过了。

./configure --prefix=/home/${HOME}/arm64_soft_dest/ffmpeg --disable-static --enable-shared --disable-debug --disable-ffplay --disable-ffprobe --enable-parser=h264 --enable-cross-compile --arch=arm64 --target-os=linux --cross-prefix=aarch64-linux-gnu-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值