你好-jni NDK示例-ndk-build失败

4
我正在按照http://developer.android.com/sdk/ndk/overview.html上的步骤构建hello-jni示例,但是当我到达第二步运行时遇到问题。
cd $NDK-ROOT/samples/hello-jni
$NDK-ROOT/ndk-build

在Cygwin命令提示符中,我收到以下错误信息:
/bin/sh: -c: line 0: unexpected EOF while looking for matching `''
/bin/sh: -c: line 1: syntax error: unexpected end of file
Android NDK: Host awk tool is outdated. Please define HOST_AWK to point to Gawk
or Nawk !

我在Windows机器上安装了Cygwin 1.7.9、Gnu Make 3.8.2和Gawk 3.1.8,还有Android NDK的r5b版本。我设置了HOST_AWK环境变量,并指向我的Gawk文件夹。
不幸的是,如果没有这一步骤,示例无法成功运行(如果我运行hello-jni,我会立即收到UnsatisfiedLinkError异常)。
以下是我机器上init.mk文件的部分内容(位于NDK_ROOT / build / core中),它导致了此错误:
# Location of all awk scripts we use
BUILD_AWK := $(NDK_ROOT)/build/awk

AWK_TEST := $(shell $(HOST_AWK) -f $(BUILD_AWK)/check-awk.awk)
$(call ndk_log,Host awk test returned: $(AWK_TEST))
ifneq ($(AWK_TEST),Pass)
$(call __ndk_info,Host awk tool is outdated. Please define HOST_AWK to point to Gawk or     Nawk !)
$(call __ndk_error,Aborting.)
endif

感谢您的帮助。

尝试更新您的awk工具。看起来是一个过时的版本(也许)。 - JoxTraex
遇到了同样的问题, https://dev59.com/7Gsy5IYBdhLWcg3wsADQ - MGK
Cygwin 上相同的问题 - Awk 4.0.0。 - tofutim
在这种情况下的问题似乎是因为$(NDK_ROOT)给出了一个空结果,因为我的根目录存储在$NDK_ROOT中(没有括号)。 - tofutim
4个回答

0

不要使用 HOST_AWK=gawk.exe,直接使用 HOST_AWK=gawk


我刚刚更新了我的环境变量以反映这一点,不幸的是我仍然收到相同的错误。 - lost_bits1110

0
原来我的HOST_AWK路径中有一个撇号,这就导致了问题。

0
尝试更新你的awk工具。看起来是过时的版本(也许)。同时确保NDK根目录定义为你的NDK源代码所在的位置,并确保你的awk工具位于NDK源代码的构建目录中。

NDK_ROOT

尝试将此环境变量设置为你的NDK根目录所在的位置。每当这个变量被定义时(通常在顶部),就会使用它。

我使用的awk工具是最新版本的Gawk 3.1.8。这也是Cygwin安装程序提供的版本。我的NDK_ROOT环境变量指向我的android-ndk-r5b文件夹位置,而我的HOST_AWK环境变量指向gawk.exe - 但这是随Cygwin安装程序一起提供的,因此在我的Cygwin\bin文件夹中。 - lost_bits1110
我是否需要单独安装Gawk并将其放置在我的NDK_ROOT/build文件夹中?目前,NDK_ROOT/build包含: awk/ core/ gmsl/ tools/ - lost_bits1110
我对具体情况不太确定,但我预计所有的awk工具都会在那个目录中。 - JoxTraex
我将gawk可执行文件复制到NDK_ROOT/build/awk目录中(该目录目前仅包含.awk文件),但是相同的错误仍然存在。 - lost_bits1110
你记得查看NDK_ROOT变量是否指向你的NDK工具集所在的位置了吗? - JoxTraex
是的,我的NDK_ROOT环境变量指向我的android-ndk-r5b文件夹。 - lost_bits1110

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接