【问题标题】:NDK build errorNDK 构建错误
【发布时间】:2011-06-23 17:05:08
【问题描述】:

您好,我是 Android NDK 开发的新手。

MacBook-Pro:JNIexample sk$ ndk-build
usage: dirname path
gmake: /Users/sk/build/core/build-local.mk: No such file or directory
gmake: *** No rule to make target `/Users/sk/build/core/build-local.mk'.  Stop.

为什么我会得到他的错误?

【问题讨论】:

    标签: android android-ndk-r5


    【解决方案1】:

    所以我遇到了同样的麻烦,看起来如果我有任何目录是完整目录路径的一部分,其目录名称之间有空格('')然后'ndk-build'不会是能够解析路径。所以我的目录名称“开发工具”不够好,所以我将其更改为“开发工具”并且它有效。如果我在“ndk-build”中对路径进行硬编码,那么它可以正常工作,因此找出原因。

    【讨论】:

    • 会检查并告诉。谢谢。
    【解决方案2】:

    您需要指定要构建的项目。像这样:ndk-build -C location_of_project。

    例如,要构建 NDK 附带的 hello-neon 示例,您需要转到 ndk 安装根目录并执行 ndk-build -C samples/hello-neon

    【讨论】:

    • MacBook-Pro:~ sk$ ndk-build -C /Users/sk/Desktop/JNIExample/jni/ 用法:目录名路径 gmake:进入目录/Users/sk/Desktop/JNIExample/jni' gmake: /Users/sk/build/core/build-local.mk: No such file or directory gmake: *** No rule to make target /Users/sk/build/core /build-local.mk'。停止。 gmake:离开目录 `/Users/sk/Desktop/JNIExample/jni' 注意:jni 文件夹包含 Application.mk 文件
    • 试试 ndk-build -C /Users/sk/Desktop/JNIExample/
    【解决方案3】:

    ndk-build 工具实际上只是一个使用 build-local.mk 文件调用 gmake 的包装器。它通过创建以 ndk-built 工具位置为根的相对路径来查找 build-local.mk 文件。听起来您没有安装完整的 NDK,或者可能移动了 ndk-build 工具而不移动其余 NDK 内容?

    【讨论】:

    • 我没有移动任何工具。只需按照网站上的说明进行操作即可。
    • 听起来 ndk-build 出于某种原因找不到本地构建脚本。我假设 /Users/sk/build/core/build-local.mk 存在且可读?尝试在 ndk-build 中进行一些调试,以找出导致它失败的原因。但是,如果没有更多信息,我没有任何其他建议。
    【解决方案4】:

    我也遇到过这个问题。我解决了它并发布了整个答案here。希望对你有帮助。

    【讨论】:

      【解决方案5】:

      请注意,从错误消息中: gmake: /Users/sk/build/core/build-local.mk: 没有这样的文件或目录。

      build/core/builid-local.mk其实是在ndk的根目录下,为什么会被列为/Users/username/build...?

      我在我的 Macbook 上遇到了同样的错误。我已将 ndk 放在 /Applications/Android Studio.app 目录中,因为名称之间有空格,不知何故 ndk 中的工具无法解析隐含路径。这就是打印错误消息的原因。

      后来我将 Android Studio.app 重命名为 Android-Studio.app 从而解决了这个问题。

      【讨论】:

        【解决方案6】:

        对我来说解决方案是不同的。如果您查看 ndk-build 脚本,您会看到它立即运行 `dirname $0` 以获取目录。

        我从命令行调用“ndk-build”,它使用的是我放入 /usr/local/bin/ 的 ndk-build 脚本的副本,所以我的错误是 '/usr/local/ bin/build/core/build-local.mk: 没有这样的文件或目录。

        解决方案是在真正的 ndk-build 脚本所在的 ndk 文件夹中,并使用 -C /path/to/project 选项告诉它从哪里开始。所以,'cd /path/to/ndk' 然后运行 ​​'./ndk-build -C /path/to/project'

        【讨论】:

          【解决方案7】:

          我遇到了同样的问题。我创建了新的工作区并将现有项目导入其中。但是忘记在 windows->preferences->Android->NDK 中添加 ndk 位置。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-10-04
            • 1970-01-01
            • 2015-05-10
            • 2011-11-09
            • 1970-01-01
            • 2016-01-19
            相关资源
            最近更新 更多