【问题标题】:Android NDK revision 7 Host 'awk' tool is outdated errorAndroid NDK 修订版 7 Host 'awk' tool is outdated error
【发布时间】:2012-01-13 03:04:54
【问题描述】:

我收到“Android NDK:Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !”最新的 android ndk 修订版 7 出错。

【问题讨论】:

  • 如果您通过添加 HOST_AWK 环境变量在 ndk-7 中添加了修复程序,请在运行 ndk-8 之前将其删除,否则您将收到相同的错误。

标签: android android-ndk


【解决方案1】:

解决了这个问题。

解决方案:

  1. 导航到 ../android-ndk-r7/prebuilt/linux-x86/bin
  2. 将文件 awk 重命名为 awk_

windows机器上需要注意的事项:

ndk 版本 7 以后,可以在没有 cygwin 的情况下构建 ndk 源,即.., 而不是从 Cygwin shell 中调用 ndk-build 命令,您应该在 MSDOS 命令窗口中调用 run ndk-build.cmd。


它之所以有效,是因为 ndk-build 可能首先尝试使用本地定义但旧的(至少对于 Linux 而言)版本的 awk。通过重命名它,我们使它无法被这样的命令访问,因此,显然,ndk-build 调用了系统范围的 awk。

【讨论】:

  • 多么随机的问题。非常感谢。
  • 天啊!它坏了! Android 太疯狂了 :)
  • 但是我的电脑里没有awk文件
【解决方案2】:

我认为问题是 $(HOST_AWK) 定义不正确,本地预构建 awk.exe 不起作用。因此,如果未定义 awk,则应删除或重​​命名预构建 awk.exe 并使用 gawk

解决这个问题:

1 - 将 <drive>\android-ndk\prebuilt\windows\bin\awk.exe 重命名为 <drive>\android-ndk\prebuilt\windows\bin\awk_.exe

2 - 打开<drive>\android-ndk\build\core\init.mk

替换

HOST_AWK := $(strip $(HOST_AWK))
ifndef HOST_AWK
    HOST_AWK := awk
endif

HOST_AWK := $(strip $(HOST_AWK))
ifndef HOST_AWK
    HOST_AWK := gawk
endif

请注意,awk 已重命名为 gawk

【讨论】:

    【解决方案3】:

    我在 Windows 上使用不同版本的 awk 时遇到问题。此更改使用 cygwin 控制台中的 awk 的 cygwin 版本和 dos 控制台中的预构建版本。

    添加到 init.mk:

    ifeq ($(HOST_OS),cygwin)
           HOST_AWK := /bin/awk
    endif
    

    【讨论】:

      【解决方案4】:

      此解决方案(来自 Santhosh)也适用于 windows:

      1. 导航到 ../android-ndk-r7/prebuilt/windows/bin 重命名文件
      2. 将 awk.exe 重命名为 awk_.exe

      【讨论】:

        【解决方案5】:

        看看这篇日文帖子:http://d.hatena.ne.jp/yohpapa/20111113/1321198570

        他们解释了如何解决您的问题。是日文的,但命令是清晰的=)

        希望这会有所帮助...

        【讨论】:

        • 谢谢你,因为我能理解日语,所以很容易解决。
        猜你喜欢
        • 2013-10-09
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        • 2018-01-08
        • 2014-07-22
        • 2012-08-30
        • 2013-10-06
        • 2021-02-26
        相关资源
        最近更新 更多