我在Windows上安装了最新版本的Android NDK (r4),外加新安装的cygwin以及所需的软件包、最新的Android SDK、Eclipse + Android插件。
每当我尝试从cygwin构建任何JNI代码(无论是来自NDK的样本,还是custom project),我都会得到:
$ make APP=demo
Android NDK: Building for application 'demo'
Compile thumb : demo_lib <= apps/demo/project/jni/demo.c
cc1: error: /cygdrive/g/David/ndk/build/platforms/android-3/arch-arm/usr/local/i
nclude: not a directory
cc1: error: /cygdrive/g/David/ndk/build/platforms/android-3/arch-arm/usr/include
: not a directory
make: *** [out/apps/demo/armeabi/objs/dmeo_lib/demo.o] Error 1我不叫大卫,也没有G型硬盘。
这条路似乎以某种方式硬编码到了这个版本中。我尝试在NDK目录中查找字符串g/David。它作为注释出现在许多二进制文件、一些.info文件和两个mkheaders.conf文件中:
<NDK>\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1\install-tools\mkheaders.conf:
SYSTEM_HEADER_DIR="/cygdrive/g/David/ndk/build/platforms/android-3/arch-arm/usr/include"和
<NDK>\build\prebuilt\windows\arm-eabi-4.4.0\lib\gcc\arm-eabi\4.4.0\install-tools\mkheaders.conf:
SYSTEM_HEADER_DIR="/cygdrive/g/David/ndk/build/platforms/android-3/arch-arm${sysroot_headers_suffix}/usr/include"我更改了这两个文件以指向正确的路径,但得到完全相同的错误(与原始路径完全相同)。
我对cygwin、unix或make的使用经验有限。有什么想法吗?
发布于 2010-05-26 03:10:56
这可能是NDK安装不完整/损坏的症状。
gcc二进制文件始终将原始sysroot目录硬编码到其可执行文件中,但如果另外提供了适当的系统头文件和库,则通常不会找到这些文件。他们应该这样做。
你可以尝试从官方网站重新下载和重新解压NDK包,看看这是否解决了问题?
发布于 2010-06-26 18:43:28
我也有同样的问题。这是因为你可能有一个用于DVDRom或硬盘的G:驱动器(对我来说,G:就是HDD光盘)。当我停用G:驱动器时,问题解决了....
发布于 2010-10-27 20:03:26
在Windows XP中,我也有一个(不活动的) G:驱动器(为它分配了一些USB驱动器)。这阻止了一些使用NDK r4的构建,我不明白为什么有时会弹出错误。
无论如何,以下是解决方法:
mkdir c:\cygwin\ccc mount -c ccc更改cygdrive路径前缀mkdir -f /cygdrive/g/David/ndk/build/platforms/android-3/arch-arm/usr/local/include
mkdir -p /cygdrive/g/David/ndk/build/platforms/android-3/arch-arm/usr/include
现在,您可以运行android-ndk-r4\ndk-build
https://stackoverflow.com/questions/2905738
复制相似问题