【问题标题】:Android NDK keeps looking for "g/David/..."Android NDK 一直在寻找“g/David/...”
【发布时间】:2010-05-25 14:46:53
【问题描述】:

我在 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 方面的经验有限。有什么想法吗?

【问题讨论】:

    标签: android cygwin makefile android-ndk


    【解决方案1】:

    这可能是 NDK 安装不完整/损坏的症状。

    gcc 二进制文件总是在其可执行文件中硬编码原始 sysroot 目录,但如果提供了适当的系统头文件和库,则通常不会找到这些文件。他们应该这样做。

    您可以尝试从官方网站重新下载并重新解压缩NDK包,看看是否可以解决问题?

    【讨论】:

    • 谢谢。我试图重新下载(从官方网页,和以前一样),我仍然得到同样的东西。我试图在 linux VM 上安装 linux 版本,它似乎可以工作。但是,这会导致构建过程非常繁琐。
    【解决方案2】:

    我遇到了同样的问题。 这是因为也许你有一个用于 DVDRom 或 HDD 的 G: 驱动器(对我来说 G: 是 DVDROM)。当我取消激活 G: 驱动器时问题解决了 ....

    【讨论】:

      【解决方案3】:

      我在 Windows XP 中也有一个(非活动的)G: 驱动器(为它分配了一些 USB 驱动器)。这可以防止使用 NDK r4 进行一些构建,我无法理解为什么有时会弹出错误。

      无论如何,这是解决方法:

      1. 准备备用cygdrive路径:mkdir c:\cygwin\ccc

      2. 使用cygwin的mount -c ccc更改cygdrive路径前缀

      3. 创建缺少的目录:

      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

      【讨论】:

        猜你喜欢
        • 2019-03-22
        • 2018-09-24
        • 1970-01-01
        • 1970-01-01
        • 2017-08-16
        • 2015-11-26
        • 2015-05-25
        • 2021-10-27
        • 1970-01-01
        相关资源
        最近更新 更多