我得到“Android NDK:主机'awk'工具已经过时了。请定义HOST_AWK指向Gawk或Nawk!”最新的android ndk修订版7上的错误。
答案 0 :(得分:58)
解决了这个问题。
解决方案:
- 导航到../ android-ndk-r7 / prebuilt / linux-x86 / bin
- 将文件awk重命名为awk _
醇>
关于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:
答案 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