代码改变世界

cygwin编译ffmpeg移植到android平台问题集锦

2013-08-20 17:39  硕硕  阅读(1258)  评论(0编辑  收藏  举报

编译环境:

windows xp

Cygwin 1.1.3.1

NDK r9

 

1.提示各种command not found  

比如 

./config.sh: line 6: $'--arch=arm\r': command not found

可以看到arm后面有个'\r'  unix文件换行和win下面不一样   需要用ultraedit 文件-转换-dos转unix 

 

2.临时目录问题,各种提示.....temp\No such file or directory

更改ffmpeg自带的configure文件  

# set temporary file name
: ${TMPDIR:=$TEMPDIR}
: ${TMPDIR:=$TMP}
: ${TMPDIR:=tmp}改为

# set temporary file name
: ${TMPDIR:=$TEMPDIR}
: ${TMPDIR:=$TMP}
: ${TMPDIR:=D:/cygwin/tmp}

 

cygwin:bash

$export TMPDIR=D:/cygwin/tmp

都要确保D:/cygwin/tmp路径存在

 

3.GCC找不到文件的问题

arm-linux-androideabi-gcc.exe: ../crtbegin_static.o: No such file or directory

arm-linux-androideabi-gcc.exe: ../crtend_android.o: No such file or directory

路径错误。全部写成绝对路径。我的config.sh如下:

#!/bin/bash
 PREBUILT=D:/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/windows
 PLATFORM=android-8
 ARCH=--arch=arm
 ./configure \
 ${ARCH} \
 --target-os=linux --enable-cross-compile --cross-prefix=${PREBUILT}/bin/arm-linux-androideabi- \
 --extra-cflags=" -fPIC -DANDROID -std=c99 " \
 --enable-version3 \
 --enable-gpl \
 --enable-nonfree \
 --disable-stripping \
 --disable-ffmpeg\
 --disable-ffplay\
 --disable-ffserver\
 --disable-ffprobe \
 --disable-encoders \
 --disable-muxers \
 --disable-devices \
 --disable-protocols \
 --enable-protocol=file \
 --enable-avfilter \
 --disable-network \
 --disable-avdevice \
 --disable-asm \
 --enable-neon \
 --enable-armv5te \
 --sysinclude=D:/android-ndk-r9/platforms/${PLATFORM}/arch-arm/usr/include \
 --extra-ldflags="-Wl,-rpath-link=D:/android-ndk-r9/platforms/${PLATFORM}/arch-arm/usr/lib -LD:/android-ndk-r9/platforms/${PLATFORM}/arch-arm/usr/lib -nostdlib D:/android-ndk-r9/platforms/${PLATFORM}/arch-arm/usr/lib/crtbegin_static.o D:/android-ndk-r9/platforms/${PLATFORM}/arch-arm/usr/lib/crtend_android.o -lc -lm -ldl"

 

4.编译完成,libffmpeg.so只有5K的问题

下班了,明天再弄了