ijk播放器地址https://github.com/Bilibili/ijkplayer
从https://github.com/Bilibili/openssl下载的,发现和目前的脚本不一样
在Configurations/10-main.conf下有关于android64的配置。
"android64" => {
inherit_from => [ "linux-generic64" ],
cflags => "-mandroid -fPIC --sysroot=\$(CROSS_SYSROOT) -Wa,--noexecstack -Wall",
debug_cflags => "-O0 -g",
lflags => "-pie%-ldl",
shared_cflag => "",
},从这可以解析Configure中的%table,就是支持的平台。
这里面没有上面那个文件
所以通过这种方式
"android64","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
增加。从Configurations/10-main.conf知道inherit_from => [ "linux-generic64" ],
上面有
"linux-generic64","gcc:-O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
可以猜到选择no_asm这种汇编。
配置改好了,就是在android/contrib/compile-openssl.sh增加arm64,这个简单,修改
FF_ALL_ARCHS="armv5 armv7a x86 arm64"
if [ "$FF_TARGET" = "armv5" -o "$FF_TARGET" = "armv7a" -o "$FF_TARGET" = "arm64" ]; then
echo_archs
sh tools/do-compile-openssl.sh $FF_TARGET这就增加了arm64。
在android/contrib/tools/do-compile-openssl.sh中增加
elif [ "$FF_ARCH" = "arm64" ]; then
FF_BUILD_NAME=openssl-arm64
FF_SOURCE=$FF_BUILD_ROOT/$FF_BUILD_NAME
FF_ANDROID_PLATFORM=android-21
FF_CROSS_PREFIX=aarch64-linux-android
FF_TOOLCHAIN_NAME=${FF_CROSS_PREFIX}-4.9
FF_PLATFORM_CFG_FLAGS="android64"就可以成功编译了。
本文介绍如何为ijk播放器配置并编译适用于Android 64位系统的OpenSSL库,包括修改配置文件、增加arm64支持等步骤。

1896

被折叠的 条评论
为什么被折叠?



