Android NDK:在包含BUILD_SHARED_LIBRARY之前缺少LOCAL_MODULE
Android NDK: Missing LOCAL_MODULE before including BUILD_SHARED_LIBRARY
我正在尝试在Eclipse/ADT中设置一个测试NDK项目。
我创建了一个全新的Android项目"Test1",我在其中添加了这两个文件:
<>前c: Workspace Test1 jni Android.mkc: 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-buildc:/android-ndk-r10d/构建/核心/build-shared-library。mk:23: *** Android NDK:在c:/Workspace/Test1//jni/Android中包含BUILD_SHARED_LIBRARY之前缺少LOCAL_MODULE。可。停止。之前但我确实有一个LOCAL_MODULE := ndkfoo
条款在Android.mk
,所以我不明白为什么我得到这个错误!
张贴这个,以防其他一些可怜的灵魂试图直接从该教程复制/粘贴- LOCAL_MODULE := ndkfoo
行上的空格有问题。
我认为它们不是适当的空格,而是一些奇怪的Unicode字符,这与ndk-build混淆,因为我用十六进制编辑器查看它们,它们是0xC2 0xA0 0xC2 0xA0 0xC2 0xA0
而不是0x20 0x20 0x20 0x20
(这是正常的空格)。
不幸的是,任何从他们的教程中复制的人都会有这个错误。
如果你试图从这里的问题复制它应该是好的,我认为SO已经以某种方式将它们固定到正常的空间,但在原始网站上,它们是奇怪的Unicode空间,会导致ndk-build
失败。
Edit:显然这些是非换行空格。我不知道这是不是真的,但我认为ndk-build没有将它们识别为空白,所以它们成为变量名称的一部分,所以我定义了一个名为"LOCAL_MODULE "
的变量,而不是"LOCAL_MODULE"
,这就是为什么它抱怨变量未定义的原因。
相关文章:
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- "local scope"中的 C++ 初始化静态变量
- 在 /usr/local/lib 下找不到库
- C++:寻找"returning address of local variable..."的更正
- C++ - 在我尝试制作一个简单的计算器时有一个"uninitialized local variable y used"警告
- 使用自定义 nodejs 插件时的"The specified module could not be found"
- pip install uwsgi 失败,出现 /usr/local/include/string/string.h:7:10:致命错误:找不到'sstream'文件?
- Boost.Python 和导入 dll,"The specified module could not be found"
- 将 TensorFlow 链接到C++.Protobuf (/usr/local/include/google/prot
- 为什么我收到以下错误:"returning reference to temporary [-Werror=return-local-addr]"
- Visual Studio生成"Error: uninitialized local variable 'x' "而在线编译器不会 - 为什么?
- AppData\Local\Temp\cc59LXDc.o:test1.cpp: undefined reference to 'constructNewObjectOfClass
- 如何在 module.reload() 之后保持 py::objects 存活
- Boost 文件在 /usr/local/include 和 /usr/include 中有所不同
- 此示例中的'aliased local shared_ptr'是什么
- 带有定制 GLFW 二进制 /usr/bin/ld 的 Centos 7: /usr/local/lib/libglfw3.a(init.c.o):".text"部分中无法识别的重定位 (0x2a)
- 在 Ubuntu 16.04 的 usr/local/bin 中安装的 c++ 应用程序在从主目录执行时无法正常运行
- 如何将我的控制台应用程序链接到使用 clang++ 作为编译器的 OSX 环境中的 /usr/local/lib 中存在
- 如何使用Clang 链接到Boost /usr /local编译
- Clang and C++ Module TS