【问题标题】:Input path limit for Android ndk source fileAndroid ndk 源文件的输入路径限制
【发布时间】:2016-06-03 01:41:38
【问题描述】:

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 中尝试过这个,它也有同样的问题。

除了重命名文件夹之外,我还能做些什么吗?

【问题讨论】:

    标签: android android-ndk


    【解决方案1】:

    我又看了一遍,然后想通了。我遇到了 Windows 的最大路径长度,大约 260 个字符。当我添加形成源文件绝对路径的基本路径时,断点在 windows max 附近。除了在 Linux 或 Mac 上构建之外,没有其他好办法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-28
      • 1970-01-01
      • 2011-10-03
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多