Ijkplayer: armv7 编译问题处理咨询

Created on 22 Oct 2018  ·  11Comments  ·  Source: bilibili/ijkplayer

问题:
AS libavcodec/arm/aacpsdsp_neon.o
./libavutil/arm/asm.S:50:9: error: unknown directive
.arch armv7-a
^
make: * [libavcodec/arm/aacpsdsp_neon.o] Error 1
make: *
Waiting for unfinished jobs....

处理方式:修改 compile-ffmpeg.sh 中删除 armv7

第24行 改为: FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"
第120行 改为: if [ "$FF_TARGET" = "armv7s" -o "$FF_TARGET" = "arm64" ]; then
第159行 改为: echo " compile-ffmpeg.sh arm64|i386|x86_64"

处理方式来源:https://www.jianshu.com/p/65fb80dff4d6
修改后编译通过,运行Demo暂未发现问题。

是否会存在32位机型兼容性问题?

Most helpful comment

ios/complile-ffmpeg.sh 25行添加

FF_ALL_ARCHS_IOS10_SDK="arm64 i386 x86_64"

修改

FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS10_SDK

Xcode 10 测试没问题

All 11 comments

iPhone 5s及以上都是64位的ARM CPU了,上面的处理都是把armv7(32bit)删除,我觉得影响应该不大吧,用iPhone 5/iPhone 4s/iPhone4的人数应该非常少了...

完美。。。

不支持iOS 9以下就行了

这里给希望兼容armv7的朋友看到,下载xcode9.1或以下版本,执行命令:
sudo xcode-select -s /Applications/Xcode9.1.app/Contents/Developer,然后就可以顺利编过

ios/complile-ffmpeg.sh 25行添加

FF_ALL_ARCHS_IOS10_SDK="arm64 i386 x86_64"

修改

FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS10_SDK

Xcode 10 测试没问题

···
第24行 改为: FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"
去掉armv7 就好,自己用最新的ffmpeg都可以编译armv7,好尴尬
···

这个跟xcode版本有关系吧,之前的xcode都是armv7支持的。而且现在这个架构支持意义也很小了

@zxl56123 A12处理器对应的是 arm64e, 我尝试了一下是不是要加上, 发现ijk好久没更新了...并不支持这个指令集...不处理arm64没问题么

ios/complile-ffmpeg.sh 25行添加

FF_ALL_ARCHS_IOS10_SDK="arm64 i386 x86_64"

修改

FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS10_SDK

Xcode 10 测试没问题

这样iOS10以下都不能用了吧

最新版本 xcode 10.2.1 支持 armv7 的编译方式

https://github.com/befovy/ijkplayer/commit/d954e565f14918313b85bfdf65863e6629eb9096

image

@befovy Thanks for sharing information! I succeeded to build by this patch.

Was this page helpful?
0 / 5 - 0 ratings