Trying to compile x265 for use with arm64-v8a. After successuful build of x265 itself, I receive the following error when ffmpeg is about to compile:
require_pkg_config libx265 x265 x265.h x265_api_get
check_pkg_config libx265 x265 x265.h x265_api_get
test_pkg_config libx265 x265 x265.h x265_api_get
/root/ffmpeg_android/ffmpeg-android-1.6.3/ffmpeg-pkg-config --exists --print-errors x265
check_func_headers x265.h x265_api_get -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265 -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib -lx265
test_ld cc -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265 -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib -lx265
test_cc -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265 -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib
BEGIN /tmp/ffconf.xKyjnplW/test.c
1 #include <x265.h>
2 #include <stdint.h>
3 long check_x265_api_get(void) { return (long) x265_api_get; }
4 int main(void) { int ret = 0;
5 ret |= ((intptr_t)check_x265_api_get) & 0xFFFF;
6 return ret; }
END /tmp/ffconf.xKyjnplW/test.c
/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/bin/aarch64-linux-android-clang -DANDROID -fpic -fpie -march=armv8-a --sysroot=/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/sysroot -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -DANDROID -fpic -fpie -march=armv8-a -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/vpx/android/arm64-v8a/include -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x264/android/arm64-v8a/include/x264 -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265 -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/lame/android/arm64-v8a/include -DANDROID -fpic -fpie -march=armv8-a --static -mcpu=cortex-a57 -std=c11 -fPIE -fomit-frame-pointer -fPIC -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265 -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib -c -o /tmp/ffconf.xKyjnplW/test.o /tmp/ffconf.xKyjnplW/test.c
clang60: warning: argument unused during compilation: '-L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib' [-Wunused-command-line-argument]
/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/bin/aarch64-linux-android-clang -Wl,-z,defs -Wl,--unresolved-symbols=report-all -march=armv8-a -L/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/sysroot -Wl,-z,relro -Wl,-z,now -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/vpx/android/arm64-v8a/lib -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x264/android/arm64-v8a/lib -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/lame/android/arm64-v8a/lib -Wl,-z,defs -Wl,--unresolved-symbols=report-all -march=armv8-a -L/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/sysroot -Wl,-z,relro -Wl,-z,now --static --sysroot=/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/sysroot -mcpu=cortex-a57 -Wl,--as-needed -Wl,-z,noexecstack -fPIE -pie -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265 -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib -o /tmp/ffconf.xKyjnplW/test /tmp/ffconf.xKyjnplW/test.o -lx265 -lgcc
clang60: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument]
/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: skipping incompatible /root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib/libx265.a when searching for -lx265
/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: skipping incompatible /root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib/libx265.a when searching for -lx265
/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: cannot find -lx265
clang60: error: linker command failed with exit code 1 (use -v to see invocation)
ERROR: x265 not found using pkg-config
I use ffmpeg 4.1.3 and the latest version of x265 sources. I use this project to compile and I have succeeded when building without x265. I compile on Debian Buster x64.
I ended up using the scripts from this project that uses all latest NDK and ffmpeg together with every latest library, in order to create an ffmpeg binary. It works pretty well on my device and by modifying a bit, I got a static ffmpeg as well. I only needed to add 2 extra native libraries to my app for it to work. It even uses all CPU features so it is the fastest solution for mobiles.