与Android NDK R5B编译的ffmpeg [英] compile ffmpeg with android ndk r5b

查看:161
本文介绍了与Android NDK R5B编译的ffmpeg的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

ffmpeg的编译与Android NDK R5B。

的ffmpeg 0.6.1

的Andr​​oid NDK R5B

Cygwin的1.7

建立参考网址:<一href="http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html">http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html

不过,ffmpeg的的./configure结果错误! (以下config.err文件)

  check_cc
BEGIN /tmp/ffconf.GlDiY1P8.c
    1 INT主要(无效){返回0; }
END /tmp/ffconf.GlDiY1P8.c
/android-ndk-r5b/tool​​chains/arm-eabi-4.4.0/$p$pbuilt/windows/bin/arm-eabi-gcc -fPIC -DANDROID -c -o /tmp/ffconf.1kQLpGaU.o的/ tmp / ffconf.GlDiY1P8.c
臂EABI-gcc.exe:/tmp/ffconf.GlDiY1P8.c:没有这样的文件或目录

臂EABI-gcc.exe:没有输入文件

C编译器测试失败。
 

所以,我只是尝试测试code。

  // test.c的code
诠释的main(){
  返回0;
}
 

/android-ndk-r5b/tool​​chains/arm-eabi-4.4.0/$p$pbuilt/windows/bin/arm-eabi-gcc -fPIC -DANDROID -c -o ./test.o ./test .C

OK !!!!没有问题的。

不过, CP ./test.c / tmp目录(复制到/ tmp)

/android-ndk-r5b/tool​​chains/arm-eabi-4.4.0/$p$pbuilt/windows/bin/arm-eabi-gcc -fPIC -DANDROID -c -o ./test.o的/ tmp / test.c以

  ARM-EABI-gcc.exe:/tmp/test.c:没有这样的文件或目录
臂EABI-gcc.exe:没有输入文件
 

失败! 差仅为文件路径。 / tmp目录存在,并且权限是正确的。 /home/test.c是同样的结果。

什么是错的?

解决方案

我有一个很难得到它的工作在Windows,但最后我已经成功地做​​到这一点! 在previous职位是正确的 - 有一个与Cygwin的路径和Windows路径的问题。 我试图在后描述的解决方案上面的第一件事,但它不能正常工作。最后,我已经明白其中的道理:即使你把你的build_android.sh文件的Windows路径,在配置了FFmpeg的仍然包含错误的道路。

所以,在我的情况我已经从FFmpeg的根目录改变部分配置文件:

 #设置临时文件名
:$ {TMPDIR:= $ TEMPDIR}
:$ {TMPDIR:= $ TMP}
:$ {TMPDIR:= / tmp目录}
 

这样:

 #设置临时文件名
#:$ {TMPDIR:= $ TEMPDIR}
#:$ {TMPDIR:= $ TMP}
:$ {TMPDIR:= D:/ InstallTools /安卓/ Cygwin_Root / tmp目录}
 

在此,我把它编译。<​​/ P>

compile ffmpeg with android ndk r5b.

ffmpeg 0.6.1

android ndk r5b

cygwin 1.7

build reference url : http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html

but, ffmpeg ./configure result error! (below config.err file)

check_cc
BEGIN /tmp/ffconf.GlDiY1P8.c
    1   int main(void){ return 0; }
END /tmp/ffconf.GlDiY1P8.c
/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/windows/bin/arm-eabi-gcc -fPIC -DANDROID -c -o /tmp/ffconf.1kQLpGaU.o /tmp/ffconf.GlDiY1P8.c
arm-eabi-gcc.exe: /tmp/ffconf.GlDiY1P8.c: No such file or directory

arm-eabi-gcc.exe: no input files

C compiler test failed.

so, i just try test code.

// test.c code
int main(){
  return 0;
}

/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/windows/bin/arm-eabi-gcc -fPIC -DANDROID -c -o ./test.o ./test.c

ok!!!! no problem.

but, cp ./test.c /tmp (copy to /tmp)

/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/windows/bin/arm-eabi-gcc -fPIC -DANDROID -c -o ./test.o /tmp/test.c

arm-eabi-gcc.exe: /tmp/test.c: No such file or directory
arm-eabi-gcc.exe: no input files

fail!!! difference is only file path. /tmp directory exist, and permission is right. /home/test.c is same result.

what's wrong?

解决方案

I have had a hard time to get it working in Windows, but finally I've managed to do it! The previous posts were correct - there's a problem with Cygwin paths and Windows paths. I have tried the solution described in the post above as the very first thing, but it was not working. Finally I've understand the reason: even if you put into your build_android.sh file the Windows path, the config for FFmpeg still contains the wrong path.

So in my case I have changed partially the config file in FFmpeg root directory from:

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

to this:

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

After this, I got it compiling.

这篇关于与Android NDK R5B编译的ffmpeg的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆