用androidndkr5b编译ffmpeg

用androidndkr5b编译ffmpeg,android,ffmpeg,configure,android-ndk,Android,Ffmpeg,Configure,Android Ndk,用androidndkr5b编译ffmpeg ffmpeg 0.6.1 android ndk r5b cygwin 1.7 生成参考url: 但是,ffmpeg./配置结果错误!(位于config.err文件下方) 所以,我只是尝试测试代码 // test.c code int main(){ return 0; } /android-ndk-r5b/toolschains/arm-eabi-4.4.0/prebuild/windows/bin/arm-eabi-gcc-fPIC-DAN

用androidndkr5b编译ffmpeg

ffmpeg 0.6.1

android ndk r5b

cygwin 1.7

生成参考url:

但是,ffmpeg./配置结果错误!(位于config.err文件下方)

所以,我只是尝试测试代码

// test.c code
int main(){
  return 0;
}
/android-ndk-r5b/toolschains/arm-eabi-4.4.0/prebuild/windows/bin/arm-eabi-gcc-fPIC-DANDROID-c-o./test.o./test.c

好的!!!!没问题

但是,, cp./test.c/tmp(复制到/tmp)

/android-ndk-r5b/toolschains/arm-eabi-4.4.0/prebuild/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
失败!!! 区别只是文件路径/tmp目录存在,权限正确/home/test.c是相同的结果


怎么了

如果尚未解决此问题,请检查ffmpeg目录中config.log的最后一部分;这很可能是路径或CC参数问题。

我也无法使其工作,我遇到了完全相同的问题。然而,我能够使用“android-ndk-r4”进行编译。我现在不确定是什么导致了这个问题,但如果我有时间去弄清楚的话,我也会把它贴出来


因此,目前的解决方法是使用NDKR4。

我一直在使用r6时遇到完全相同的问题。我已经尝试了兰巴奇的建议,但仍然无法使r4的工作

我一直在研究这个问题,我想我已经找到了原因

1) configure正在调用android交叉编译器,该编译器是一个windows.exe文件

2) 它通过cygwin调用它,cygwin使用unix文件命名约定。例如,用/cygdrive/c/目录代替c:\directory

3) android NDK工具链文档中指出,交叉编译器不接受cygwin样式的文件路径(来源:NDK/docs/STANDALONE_toolchain.html):


5.1/Windows支持: Windows二进制文件不依赖于Cygwin。好消息是他们 因此速度更快,坏消息是他们不了解Cygwin 路径规范,如/cygdrive/c/foo/bar(而不是c:/foo/bar)



我还在想办法。如果我解决了它,那么我会回来编辑这篇文章……tbc

我用NDKR6和cygwin构建了它。实际上,它不支持/cydrive/path,只是使用类似windows的路径;示例如下:

NDK=e:/AndroidSDK/NDK6
PLATFORM=$NDK/platforms/android-9/arch-arm/
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows

我很难让它在Windows下工作,但我终于做到了! 前面的文章是正确的-Cygwin路径和Windows路径有问题。 我第一件事就是尝试了上面帖子中描述的解决方案,但没有成功。最后我终于明白了原因:即使在build_android.sh文件中输入了Windows路径,FFmpeg的配置仍然包含错误的路径

因此,在我的例子中,我将FFmpeg根目录中的配置文件部分更改为:

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

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

在此之后,我进行了编译。

您没有设置tmp目录。您可以在/etc/profile中设置它,也可以只在终端中使用
export TMPDIR=/your/tmp/目录
。 注意: 1.如果使用cygwin编译,则目录必须类似于D:/tmp。您不能使用/cygdrive/d/tmp。
2.您必须拥有该文件夹的权限。

能否共享用于构建ffmpeg的config.sh文件?您是否成功解决了上述问题?如果是这样的话,您能分享一下解决方案吗?在使用ndk-r4时您是如何提到路径的?ffmpeg中没有配置文件。你是说配置?我正在执行./build_android.sh,然后它会给我错误消息“权限被拒绝”我犯了什么错误。
# set temporary file name
#: ${TMPDIR:=$TEMPDIR}
#: ${TMPDIR:=$TMP}
: ${TMPDIR:=D:/InstallTools/Android/Cygwin_Root/tmp}