Android ndk源文件的输入路径限制

时间:2016-05-12 12:46:22

标签: android android-ndk

Android ndk输入文件的路径是否有已知限制?我遇到了输入路径超过155个字符的问题,android g ++命令无法找到该文件。

返回到我的基本目录的本地路径非常深,在少数情况下,我有一个完整的路径返回到jni项目中的源文件,使路径有点长,尽管155看起来不像非常高的限制。

LOCAL_PATH := $(call my-dir)/../../../../../../../../../..

以下是155个字符的失败示例:

/cygdrive/c/java/Android/android-ndk-r10d/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64/bin/arm-linux-androideabi-g++  -c  jni/VECodecG723/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/./././VECodecG723/VECodecG723.cpp
arm-linux-androideabi-g++.exe: error: jni/VECodecG723/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/./././VECodecG723/VECodecG723.cpp: No such file or directory
arm-linux-androideabi-g++.exe: fatal error: no input files

成功案例,共153个字符:

/cygdrive/c/java/Android/android-ndk-r10d/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64/bin/arm-linux-androideabi-g++  -c  jni/VECodecG723/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/././VECodecG723/VECodecG723.cpp
jni/VECodecG723/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/../gen/././VECodecG723/VECodecG723.cpp:26:17: fatal error: jni.h: No such file or directory
 #include <jni.h>

重复的../gen仅适用于此示例,实际路径包含10 ../,然后是返回文件的完整路径。

我已经尝试使用常规g ++编译器的路径,并且由于路径长度不会失败。我也在使用android g ++的Windows命令shell中尝试过这个问题,它有同样的问题。

我有什么办法可以做不到重命名我的文件夹。

1 个答案:

答案 0 :(得分:0)

我再看看这个并想出来了。我遇到了Windows的最大路径长度,大约260个字符左右。当我添加基本路径形成源文件的绝对路径时,断点位于windows max附近。除了在Linux或Mac上构建之外,没有别的办法。