[FFmpeg-user] ffmpeg4android and missing math functions

Срђан Обућина obucinac at gmail.com
Wed Oct 29 19:34:44 CET 2014

A typical configure line to build FFmpeg for android with NDK would be
something like this:


./configure --target-os=linux \
    --prefix=$PREFIX \
    --enable-cross-compile \
    --extra-libs="-lgcc" \
    --arch=arm \
    --cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
    --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
    --nm=$PREBUILT/bin/arm-linux-androideabi-nm \
    --sysroot=$PLATFORM \

So, the script makes its conclusions according to this $PLATFORM sysroot,
libraries contained there, and functions contained in these libraries.

But, when building with android build system, using Android.mk file, this
sysroot is NOT USED. The linking goes against libraries built from Android
source code tree, which are placed in a totally different location.

So, I believe there is nothing wrong with toolchain, there is nothing wrong
with configure script, and there is a lot of wrong in Android build system.
IMO, no additional checks in configure script are needed or would be
helpful, because what we basically have here is configuring FFmpeg
according to one set of the libraries, and building and linking it with

IMO, the best and most secure way to build FFmpeg for Android is
cross-compiling with statically linking everything it needs. But, in my
industry, we have to adapt to Android build system, and this way simply
does not offer elegance and ease of work. Scripts from ffmpeg4android are
my attempt to adapt to the requirements of Android build system and to the
way FFmpeg is usually used by developers working with full Android source

Bottom line, don't bother, there is nothing wrong with configure script.
Blame the Android build system and hacks that have to be made in order to
build FFmpeg by Android build system.

More information about the ffmpeg-user mailing list