我试图为Android编译ffmpeg 4.0(使用Ubuntu 64位),但我无法让它工作。 我能够以相当快的速度为Linux本身编译它,但现在正在努力使用NDK。我对此没有经验,所以我可能在某处有一些重大缺陷。存在所有路径和文件。 Github教程非常过时,对我来说也有不同的错误。
获取以下错误:
In file included from ./libavformat/internal.h:24:0,
from libavdevice/alldevices.c:23:
/home/lit/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-
4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-
androideabi/4.9.x/include/stdint.h:9:26: fatal error: stdint.h: No such file
or directory
# include_next <stdint.h>
^
compilation terminated.
ffbuild/common.mak:60: recipe for target 'libavdevice/alldevices.o' failed
make: *** [libavdevice/alldevices.o] Error 1
我的构建脚本:
SYSROOT=/home/lit/Android/Sdk/ndk-bundle/platforms/android-14/arch-arm/
TOOLCHAIN=/home/lit/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-
4.9/prebuilt/linux-x86_64
cd ffmpeg/ffmpeg && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
./configure \
--prefix="$HOME/ffmpeg_build" \
--pkg-config-flags="--static" \
--extra-cflags="-O3 -Wall -pipe -ffast-math -fstrict-aliasing -Werror=strict- aliasing -Wno-psabi -Wa,--noexecstack -DANDROID -DNDEBUG-march=armv5te -mtune=arm9tdmi -msoft-float"\
--extra-ldflags="-L$HOME/ffmpeg_build/lib" \
--bindir="$HOME/bin" \
--arch=arm \
--target-os=linux \
--enable-cross-compile \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--cpu=armv5te \
--sysroot=$SYSROOT \
--enable-gpl \
--enable-small \
--enable-nonfree && \
PATH="$HOME/bin:$PATH" make && \
make -j2 && \
make install && \
hash -r
感谢您的帮助。