2016-05-12 96 views
0

Android ndk輸入文件的路徑是否存在已知限制?我遇到了輸入路徑超過155個字符的問題,android g ++命令無法找到該文件。Android ndk源文件的輸入路徑限制

返回到我的基本目錄的本地路徑非常深,在少數情況下,我有一個完整的路徑返回到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 ++編譯器的路徑,它不會因路徑長度而失敗。我也在一個Windows的命令外殼中使用了android g ++,並且它有同樣的問題。

有什麼我可以做的短重命名我的文件夾。

回答

0

我又看了一遍,想通了。我跑到Windows的最大路徑長度爲260個字符左右。當我添加了形成源文件的絕對路徑的基本路徑時,斷點是在Windows最大值附近。除了在Linux或Mac上構建之外,沒有什麼好辦法。