Android NDK修订版7主机'awk'工具已过时错误

时间:2011-12-05 10:55:08

标签: android android-ndk

我得到“Android NDK:主机'awk'工具已经过时了。请定义HOST_AWK指向Gawk或Nawk!”最新的android ndk修订版7上的错误。

5 个答案:

答案 0 :(得分:58)

解决了这个问题。

解决方案:

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

关于Windows机器的重要事项:

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


它的工作原理是因为ndk-build可能首先尝试使用本地定义但旧的(至少对于Linux)版本的awk。通过重命名它,我们通过这样的命令使其无法访问,因此,显然,ndk-build会调用系统范围的awk。

答案 1 :(得分:14)

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

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

答案 2 :(得分:3)

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

解决这个问题:

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 :(得分:2)

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

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

希望这会有所帮助......

答案 4 :(得分:1)

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

添加到init.mk:

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