Android NDK:在包含 BUILD_SHARED_LIBRARY 之前缺少 LOCAL_MODULE
Android NDK: Missing LOCAL_MODULE before including BUILD_SHARED_LIBRARY
我正在尝试在 this tutorial 之后的 Eclipse/ADT 中设置一个测试 NDK 项目。
我创建了一个全新的 Android 项目 "Test1",我在其中添加了以下 2 个文件:
c:\Workspace\Test1\jni\Android.mk
c:\Workspace\Test1\jni\ndkfoo.c
这是在Android.mk
:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ndkfoo
LOCAL_SRC_FILES := ndkfoo.c
include $(BUILD_SHARED_LIBRARY)
但是当我尝试编译它时,我得到这个错误:
c:\Workspace\Test1\jni>ndk-build
c:/android-ndk-r10d/build/core/build-shared-library.mk:23: *** Android NDK: Missing LOCAL_MODULE before including BUILD_SHARED_LIBRARY in c:/Workspace/Test1//jni/Android.mk . Stop.
但我在 Android.mk
中确实有一个 LOCAL_MODULE := ndkfoo
子句,所以我不明白为什么会出现此错误!
张贴这个以防其他可怜的人试图 copy/paste 直接从那个教程 - LOCAL_MODULE := ndkfoo
.
行的空格有问题
我认为它们不是正确的空格,而是一些奇怪的 Unicode 字符,它扰乱了 ndk-build,因为我用十六进制编辑器查看它们,它们是 0xC2 0xA0 0xC2 0xA0 0xC2 0xA0
而不是 0x20 0x20 0x20 0x20
(这是普通空格)。
不幸的是,从他们的教程中复制的任何人都会遇到此错误。
如果你尝试从这里的问题中复制它应该没问题,我认为 SO 已经以某种方式将它们固定为正常空间,但在原始站点上它们是奇怪的 Unicode 空间,这将导致 ndk-build
失败.
编辑: 显然是 non-breaking spaces。我不知道这是不是真的,但我认为 ndk-build 没有将它们识别为空格,所以它们成为变量名称的一部分,所以我定义了一个名为 "LOCAL_MODULE "
的变量,而不是 [=15] =],这就是为什么它抱怨变量未定义。
我正在尝试在 this tutorial 之后的 Eclipse/ADT 中设置一个测试 NDK 项目。
我创建了一个全新的 Android 项目 "Test1",我在其中添加了以下 2 个文件:
c:\Workspace\Test1\jni\Android.mk c:\Workspace\Test1\jni\ndkfoo.c
这是在Android.mk
:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ndkfoo
LOCAL_SRC_FILES := ndkfoo.c
include $(BUILD_SHARED_LIBRARY)
但是当我尝试编译它时,我得到这个错误:
c:\Workspace\Test1\jni>ndk-build c:/android-ndk-r10d/build/core/build-shared-library.mk:23: *** Android NDK: Missing LOCAL_MODULE before including BUILD_SHARED_LIBRARY in c:/Workspace/Test1//jni/Android.mk . Stop.
但我在 Android.mk
中确实有一个 LOCAL_MODULE := ndkfoo
子句,所以我不明白为什么会出现此错误!
张贴这个以防其他可怜的人试图 copy/paste 直接从那个教程 - LOCAL_MODULE := ndkfoo
.
我认为它们不是正确的空格,而是一些奇怪的 Unicode 字符,它扰乱了 ndk-build,因为我用十六进制编辑器查看它们,它们是 0xC2 0xA0 0xC2 0xA0 0xC2 0xA0
而不是 0x20 0x20 0x20 0x20
(这是普通空格)。
不幸的是,从他们的教程中复制的任何人都会遇到此错误。
如果你尝试从这里的问题中复制它应该没问题,我认为 SO 已经以某种方式将它们固定为正常空间,但在原始站点上它们是奇怪的 Unicode 空间,这将导致 ndk-build
失败.
编辑: 显然是 non-breaking spaces。我不知道这是不是真的,但我认为 ndk-build 没有将它们识别为空格,所以它们成为变量名称的一部分,所以我定义了一个名为 "LOCAL_MODULE "
的变量,而不是 [=15] =],这就是为什么它抱怨变量未定义。