【发布时间】: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