Как видно из журнала, двоичные файлы gcc
в NDK r18 не являются GCC;они лязгGCC не поддерживается в NDK уже несколько лет и был окончательно удален в NDK r18.Чтобы обеспечить некоторую совместимость в тех случаях, когда проект прекрасно скомпонован с помощью Clang, но просто не обновил свои сценарии сборки, мы используем некоторые сценарии с именем gcc
, которые просто вызывают Clang с правильным набором аргументов.
configure:3576: /home/hamed/dev/android-tools/android-ndk-r18/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc -mfloat-abi=softfp -marm -march=armv7-a -Os -O3 -I/home/hamed/dev/projects/ffmpeg/ffmpeg-binary-android/build_scripts/build_dir/include --sysroot=/home/hamed/dev/android-tools/android-ndk-r18/platforms/android-16/arch-arm/ -fPIE --sysroot=/home/hamed/dev/android-tools/android-ndk-r18/platforms/android-16/arch-arm/ -L/home/hamed/dev/projects/ffmpeg/ffmpeg-binary-android/build_scripts/build_dir/lib -fPIE -pie conftest.c >&5
/usr/bin/ld: unrecognised emulation mode: armelf_linux_eabi
Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu i386linux elf_l1om elf_k1om i386pep i386pe
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Ошибка здесь в том, что эти скрипты-обертки не включают -gcc-toolchain
так, как им нужно.Я только что подал https://github.com/android-ndk/ndk/issues/805, чтобы отследить это.
Однако, даже если это исправлено, похоже, что этот проект не будет построен в любом случае:
configure:3523: /home/hamed/dev/android-tools/android-ndk-r18/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc -V >&5
clang: error: argument to '-V' is missing (expected 1 value)
clang: error: no input files
configure:3534: $? = 1
configure:3523: /home/hamed/dev/android-tools/android-ndk-r18/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc -qversion >&5
clang: error: unknown argument '-qversion', did you mean '--version'?
clang: error: no input files
I 'Я не уверен, что это вызывает тот сценарий сборки, который вы используете, или это система autoconf, используемая ffmpeg, но что-то здесь нужно исправить, если оно будет работать с NDK r18.Наилучшим вариантом, вероятно, является использование автономного набора инструментов .
В противном случае вам нужно будет либо исправить проект для сборки с помощью Clang, либо вернуться к более старому NDK.