简体   繁体   English

使用arm-linux-androideabi-gcc和android ndk编译对象时出现问题

[英]Problems compiling object using arm-linux-androideabi-gcc and android ndk

I am trying to build FFmpeg source file using android ndk r8b version . 我正在尝试使用android ndk r8b版本构建FFmpeg源文件。 My linux version is CentOs 6.5.I am following this instruction from this link https://github.com/yixia/FFmpeg-Android 我的linux版本是CentOs 6.5。我正在通过此链接https://github.com/yixia/FFmpeg-Android遵循此说明
Here is bash script which is I am trying to execute 这是我正在尝试执行的bash脚本

     #!/bin/bash

    DEST=`pwd`/build/ffmpeg && rm -rf $DEST
    SOURCE=`pwd`/ffmpeg

    if [ -d ffmpeg ]; then
      cd ffmpeg
    else
      git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
      cd ffmpeg
    fi

    git reset --hard
    git clean -f -d
    git checkout `cat ../ffmpeg-version`
    patch -p1 <../FFmpeg-VPlayer.patch
    [ $PIPESTATUS == 0 ] || exit 1

    git log --pretty=format:%H -1 > ../ffmpeg-version

    TOOLCHAIN=/tmp/vplayer
    SYSROOT=$TOOLCHAIN/sysroot/
    $ANDROID_NDK/build/tools/make-standalone-toolchain.sh --platform=android-14 --install-     dir=$TOOLCHAIN

    export PATH=$TOOLCHAIN/bin:$PATH
    export CC=arm-linux-androideabi-gcc
    export LD=arm-linux-androideabi-ld
    export AR=arm-linux-androideabi-ar

    CFLAGS="-O3 -Wall -mthumb -pipe -fpic -fasm \
      -finline-limit=300 -ffast-math \
      -fstrict-aliasing -Werror=strict-aliasing \
      -fmodulo-sched -fmodulo-sched-allow-regmoves \
      -Wno-psabi -Wa,--noexecstack \
      -D__ARM_ARCH_5__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5TE__ \
      -DANDROID -DNDEBUG"

    FFMPEG_FLAGS="--target-os=linux \
      --arch=arm \
      --enable-cross-compile \
      --cross-prefix=arm-linux-androideabi- \
      --enable-shared \
      --disable-symver \
      --disable-doc \
      --disable-ffplay \
      --disable-ffmpeg \
      --disable-ffprobe \
      --disable-ffserver \
      --disable-avdevice \
      --disable-avfilter \
      --disable-encoders \
      --disable-muxers \
      --disable-filters \
      --disable-devices \
      --disable-everything \
      --enable-protocols  \
      --enable-parsers \
      --enable-demuxers \
      --enable-decoders \
      --enable-bsfs \
      --enable-network \
      --enable-swscale  \
      --disable-demuxer=sbg \
      --disable-demuxer=dts \
      --disable-parser=dca \
      --disable-decoder=dca \
      --enable-asm \
      --enable-version3"


    for version in neon armv7 vfp armv6; do

      cd $SOURCE

      case $version in
        neon)
          EXTRA_CFLAGS="-march=armv7-a -mfpu=neon -mfloat-abi=softfp -mvectorize-with-neon-quad"
          EXTRA_LDFLAGS="-Wl,--fix-cortex-a8"
          ;;
        armv7)
          EXTRA_CFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp"
          EXTRA_LDFLAGS="-Wl,--fix-cortex-a8"
          ;;
        vfp)
          EXTRA_CFLAGS="-march=armv6 -mfpu=vfp -mfloat-abi=softfp"
          EXTRA_LDFLAGS=""
          ;;
        armv6)
          EXTRA_CFLAGS="-march=armv6"
          EXTRA_LDFLAGS=""
          ;;
        *)
          EXTRA_CFLAGS=""
          EXTRA_LDFLAGS=""
          ;;
      esac

      PREFIX="$DEST/$version" && mkdir -p $PREFIX
      FFMPEG_FLAGS="$FFMPEG_FLAGS --prefix=$PREFIX"

      ./configure $FFMPEG_FLAGS --extra-cflags="$CFLAGS $EXTRA_CFLAGS" --extra-     ldflags="$EXTRA_LDFLAGS" | tee $PREFIX/configuration.txt
      cp config.* $PREFIX
      [ $PIPESTATUS == 0 ] || exit 1

      make clean
      make -j4 || exit 1
      make install || exit 1

      rm libavcodec/inverse.o
      $CC -lm -lz -shared --sysroot=$SYSROOT -Wl,--no-undefined -Wl,-z,noexecstack $EXTRA_LDFLAGS libavutil/*.o libavutil/arm/*.o libavcodec/*.o libavcodec/arm/*.o libavformat/*.o libswresample/*.o libswscale/*.o -o $PREFIX/libffmpeg.so

      cp $PREFIX/libffmpeg.so $PREFIX/libffmpeg-debug.so
      arm-linux-androideabi-strip --strip-unneeded $PREFIX/libffmpeg.so

    done

Now i am getting this error ./FFmpeg-Android.sh: line 26: export: arm-linux-androideabi-gcc': not a valid identifier arm-linux-androideabi-gcc is unable to create an executable file. 现在,我收到此错误./FFmpeg-Android.sh: line 26: export: arm-linux-androideabi-gcc':不是有效的标识符arm-linux-androideabi-gcc无法创建可执行文件。 C compiler test failed.` C编译器测试失败。

The code in 26 number line is export CC=arm-linux-androideabi-gcc any idea why the problem is happening ?? 26号行中的代码是export CC=arm-linux-androideabi-gcc任何想法为什么会发生问题? a help would be appreciated . 帮助将不胜感激。

can you share the content of configuration.txt file ? 可以共享configuration.txt文件的内容吗? The error will be more explicit. 该错误将更加明显。

NDK r8b is quite old and many bugs have been fixed since then, you may want to upgrade it to a more recent version like r9d or r10b. NDK r8b已经很老了,此后已修复了许多错误,您可能需要将其升级到r9d或r10b等较新的版本。

Anyway, the script you're using is rather outdated, you can try this one: https://github.com/android-native-libraries/FFmpeg-Android that is more up-to-date. 无论如何,您正在使用的脚本已经过时了,您可以尝试以下一种方法: https : //github.com/android-native-libraries/FFmpeg-Android ,它是最新的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 arm-linux-androideabi-gcc没有这样的文件 - arm-linux-androideabi-gcc no such file AOSP:arm-linux-androideabi-gcc:即使在prebuilts文件夹中也没有找到命令 - AOSP: arm-linux-androideabi-gcc: command not found even though it is present in prebuilts folder Android NDK - arm-linux-androideabi-g ++:未找到 - Android NDK - arm-linux-androideabi-g++: not found 使用UBUNTU和arm-linux-gnueabi-gcc为ARM linux交叉编译JamVM - Cross compiling JamVM for ARM linux using UBUNTU and arm-linux-gnueabi-gcc - zlib missing 安装gcc进行ARM交叉编译时出现问题 - Problems installing gcc for cross compiling for ARM 如何使用arm-linux-androideabi编译器 - How to use arm-linux-androideabi compiler arm-linux-androideabi-strip无法重命名 - arm-linux-androideabi-strip unable to rename arm-linux-androideabi stl编译错误 - arm-linux-androideabi stl compile error 为什么在编译Linux内核和uBoot时使用arm-linux-gnueabi-gcc而不是arm-none-eabi-gcc? - Why arm-linux-gnueabi-gcc and not arm-none-eabi-gcc when compiling Linux kernel and uBoot? 使用Android NDK生成的本机可执行文件与使用Raspbian的gcc-arm为Rasberry Pi生成的本机可执行文件有何不同(pi工具) - How is a native executable built using Android NDK different from that built for Rasberry Pi using gcc-arm for Raspbian (pi-tools)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM