Android NDK - cygwin使错误:ffmpeg编译与NDK



最近我正在用ndk为android编译ffmpeg,我在本文中这样做(http://vec)。io/文章/how-to-build-ffmpeg-with-android-ndk)。Configure是对的,但当我开始犯错时,它就会出错。配置壳:

export TMPDIR=D:/temp/android
export NDK=/cygdrive/D/DevelopKit/android-ndk-r8d
export PATH=/cygdrive/C/cygwin/tmp/ffmpeg/bin:$PATH
export CC=arm-linux-androideabi-gcc
export LD=arm-linux-androideabi-ld
export AR=arm-linux-androideabi-ar
export C_INCLUDE_PATH=/cygdrive/C/cygwin/tmp/ffmpeg/sysroot/usr/include
export LIBRARY_PATH=/cygdrive/C/cygwin/tmp/ffmpeg/sysroot/usr/lib
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"
EXTRA_CFLAGS="-march=armv7-a -mfpu=neon -mfloat-abi=softfp -mvectorize-with-neon-quad"
EXTRA_LDFLAGS="-Wl,--fix-cortex-a8"
FFMPEG_FLAGS="--prefix=/tmp/ffmpeg/build 
  --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 
  --disable-demuxer=sbg 
  --enable-decoders 
  --enable-bsfs 
  --enable-network 
  --enable-swscale  
  --enable-asm 
  --enable-version3"
./configure $FFMPEG_FLAGS --extra-cflags="$CFLAGS $EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS"

配置结果(config.mak的一部分):

ifndef FFMPEG_CONFIG_MAK
FFMPEG_CONFIG_MAK=1
FFMPEG_CONFIGURATION=--prefix=/tmp/ffmpeg/build --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 --disable-demuxer=sbg --enable-decoders --enable-bsfs --enable-network --enable-swscale --enable-asm --enable-version3 --extra-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 -march=armv7-a -mfpu=neon -mfloat-abi=softfp -mvectorize-with-neon-quad' --extra-ldflags='-Wl,--fix-cortex-a8'
prefix=/tmp/ffmpeg/build
LIBDIR=$(DESTDIR)${prefix}/lib
SHLIBDIR=$(DESTDIR)${prefix}/lib
INCDIR=$(DESTDIR)${prefix}/include
BINDIR=$(DESTDIR)${prefix}/bin
DATADIR=$(DESTDIR)${prefix}/share/ffmpeg
MANDIR=$(DESTDIR)${prefix}/share/man
SRC_PATH=.
ifndef MAIN_MAKEFILE
SRC_PATH:=$(SRC_PATH:.%=..%)
endif
CC_IDENT=gcc 4.6
 (GCC)
ARCH=arm
CC=arm-linux-androideabi-gcc
CXX=arm-linux-androideabi-g++
AS=arm-linux-androideabi-gcc
LD=arm-linux-androideabi-gcc
DEPCC=arm-linux-androideabi-gcc
DEPCCFLAGS= $(CPPFLAGS)
DEPAS=arm-linux-androideabi-gcc
DEPASFLAGS= $(CPPFLAGS)
YASM=yasm
DEPYASM=yasm
AR=arm-linux-androideabi-ar
ARFLAGS=rc
AR_O=$@

但是当我写

CC  libavformat/4xm.o
In file included from ./libavutil/bswap.h:35:0,
                 from ./libavutil/intreadwrite.h:25,
                 from libavformat/4xm.c:30:
./config.h:8:18: warning: missing terminating " character [enabled by default]
In file included from ./libavutil/bswap.h:35:0,
                 from ./libavutil/intreadwrite.h:25,
                 from libavformat/4xm.c:30:
./config.h:9:7: warning: missing terminating " character [enabled by default]
./config.h:9:2: error: missing terminating " character
In file included from ./libavutil/intreadwrite.h:25:0,
                 from libavformat/4xm.c:30:
./libavutil/bswap.h:58:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'static'
common.mak:48: recipe for target `libavformat/4xm.o' failed
make: *** [libavformat/4xm.o] Error 1

这是字符错误,我猜这是windows字符(我使用cygwin),我尝试了dos2unix,但它没有工作。请帮助我,谢谢你的建议。

编辑。/config.h并删除

中的换行符
#define CC_IDENT "gcc 4.6 (GCC)"

相关内容

  • 没有找到相关文章

最新更新