使用用户源的Android NDK构建
我正在尝试使用用户提供的FFmpeg源 但是,我无法构建文件 我得到以下错误: arm linux AndroidABI gcc无法创建可执行文件。 C编译器测试失败。 我已经将NDK路径设置为/home/android NDK,但仍然会出现此错误 我使用的是Android-NDK-r5b 有人能帮忙吗?THX 这是我的身材使用用户源的Android NDK构建,android,ffmpeg,android-ndk,Android,Ffmpeg,Android Ndk,我正在尝试使用用户提供的FFmpeg源 但是,我无法构建文件 我得到以下错误: arm linux AndroidABI gcc无法创建可执行文件。 C编译器测试失败。 我已经将NDK路径设置为/home/android NDK,但仍然会出现此错误 我使用的是Android-NDK-r5b 有人能帮忙吗?THX 这是我的身材 #!/bin/bash if [ "$NDK" = "" ]; then echo NDK variable not set, assuming ${HOME}/
#!/bin/bash
if [ "$NDK" = "" ]; then
echo NDK variable not set, assuming ${HOME}/android-ndk
export NDK=${HOME}/android-ndk
fi
SYSROOT=$NDK/platforms/android-3/arch-arm
# Expand the prebuilt/* path into the correct one
TOOLCHAIN=`echo $NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows`
export PATH=$TOOLCHAIN/bin:$PATH
rm -rf build/ffmpeg
mkdir -p build/ffmpeg
cd ffmpeg
# Don't build any neon version for now
for version in armv5te armv7a; do
DEST=../build/ffmpeg
FLAGS="--target-os=linux --cross-prefix=arm-linux-androideabi- --arch=arm"
FLAGS="$FLAGS --sysroot=$SYSROOT"
FLAGS="$FLAGS --soname-prefix=/data/data/com.streaming.realive/lib/"
FLAGS="$FLAGS --enable-shared --disable-symver"
FLAGS="$FLAGS --enable-small --optimization-flags=-O2"
FLAGS="$FLAGS --enable-encoder=mpeg4 --enable-decoder=mpeg4"
FLAGS="$FLAGS --enable-encoder=mpeg2video --enable-encoder=nellymoser"
FLAGS="$FLAGS --enable-protocol=rtp --enable-protocol=rtmp"
FLAGS="$FLAGS --enable-protocol=http --enable-protocol=tcp --enable-protocol=udp"
FLAGS="$FLAGS --enable-protocol=file"
case "$version" in
neon)
EXTRA_CFLAGS="-march=armv7-a -mfloat-abi=softfp -mfpu=neon"
EXTRA_LDFLAGS="-Wl,--fix-cortex-a8"
# Runtime choosing neon vs non-neon requires
# renamed files
ABI="armeabi-v7a"
;;
armv7a)
EXTRA_CFLAGS="-march=armv7-a -mfloat-abi=softfp"
EXTRA_LDFLAGS=""
ABI="armeabi-v7a"
;;
*)
EXTRA_CFLAGS=""
EXTRA_LDFLAGS=""
ABI="armeabi"
;;
esac
DEST="$DEST/$ABI"
FLAGS="$FLAGS --prefix=$DEST"
mkdir -p $DEST
echo $FLAGS --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" > $DEST/info.txt
./configure $FLAGS --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" | tee $DEST/configuration.txt
[ $PIPESTATUS == 0 ] || exit 1
make clean
make -j4 || exit 1
make install || exit 1
done
首先您使用哪个平台? 我建议Ubuntu 秒确保NDK路径正确 Third
FLAGS=“$FLAGS--soname prefix=/data/data/com.streaming.realive/lib/”
可能需要在计算机中创建相对文件夹首先检查
ffmpeg
目录中的configure.log
文件。最后几行表示您面临的确切错误。如果您发布该错误,我们可能会帮助您。如果您使用的是Windows操作系统,请尝试将工具链路径(用于build.sh
)添加到路径
环境变量(来自我的计算机
的属性)
例如:
C:\android-ndk-r7\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin
试试这个。在这里我的config.log在使用用户脚本时也遇到了同样的问题。我正在使用ubuntu
type mktemp
mktemp is /bin/mktemp
WARNING: Unknown C compiler arm-linux-androideabi-gcc, unable to select optimal CFLAGS
check_ld
check_cc
BEGIN /tmp/ffconf.ItYaeeJM.c
1 int main(void){ return 0; }
END /tmp/ffconf.ItYaeeJM.c
arm-linux-androideabi-gcc -c -o /tmp/ffconf.woaTRE0T.o /tmp/ffconf.ItYaeeJM.c
./configure: 572: ./configure: arm-linux-androideabi-gcc: not found
C compiler test failed.
1.我正在使用windows平台并使用Cygwin运行命令2。我确信我的NDK路径是正确的/\3。我认为这行代码是为了重命名本机函数名,这样我们就可以在代码中调用函数了,不是吗?我建议使用Ubuntu,因为我从来没有在windows中成功构建过。而且并非所有的构建方法都适合我。这一个对我来说很好。你可能有一个尝试,很抱歉我忘记了。哈哈,我曾经在windows中解决过这个问题。方法是你需要在windows中添加一个临时文件夹,其中包含一个新的内置配置文件>>$export TMPDIR=e:/temphey。我遇到了相同的错误。你能帮忙吗?我不知道出了什么问题。